2017-05-22 21 views
5

Tôi có 4 hàm lambda sẽ được gọi cùng một lúc (bởi SNS), tần suất của sự kiện SNS là 5 phút. Mỗi chức năng xử lý dữ liệu và hình ảnh lớn (~ 300MB) để tôi lưu trữ chúng trên thư mục /tmp (giới hạn 500MB). Khi bắt đầu chức năng, tôi đã viết một số mã để dọn dẹp thư mục /tmp, để đảm bảo nó không hết bộ nhớ (Bởi vì tôi đã biết rằng AWS lambda đôi khi sử dụng lại thùng chứa trước đó để cải thiện hiệu năng).AWS lambda - Lưu trữ/tmp lưu trữ sau mỗi lần thực hiện

Tôi kiểm tra thủ công (tạo thông báo và xuất bản bởi SNS lên 4 hàm lambda), nó hoạt động tốt.

Nhưng khi nó chạy tự động (được gọi mỗi 5 phút) kết quả không như mong đợi của tôi. Việc thực hiện đầu tiên là tốt, nhưng lần sau, 1 hoặc 4 hoặc thậm chí 4 hàm lambda ném ra lỗi liên quan đến "hết bộ nhớ": "Không còn dung lượng trên thiết bị", không thể tải lib, ...

Trước đó, tôi sử dụng nodejs (4.3) nó làm việc tốt cả hai trường hợp.

Nhưng tôi phải thay đổi thành python vì lý do nào đó, luồng chính và giá trị gắn kết của dữ liệu được tạo giống nhau. Nhưng nó không thành công khi chạy tự động.

Tôi nghĩ rằng vấn đề xuất phát từ bộ nhớ cache của thùng chứa trước (container tái sử dụng), tôi đã kiểm tra /tmp sau khi sạch (ls -alh /tmp) không có tệp nào nhưng khi kiểm tra bộ nhớ (df /tmp).

Bất kỳ đề xuất nào để làm sạch /tmp thư mục hoặc giải pháp xung quanh công việc rất được đánh giá cao. Cảm tạ!

được sửa đổi: Mã tôi sử dụng để làm sạch /tmp thư mục:

from subprocess import call 
... 
call('rm -rf /tmp/*', shell=True) 
+0

Bạn có thể thêm mã mà bạn sử dụng để xóa tệp trong '/ tmp' không? –

+0

Tôi đã thêm mã mà tôi sử dụng để làm sạch/tmp thư mục. –

Trả lời

0

Container thường tái sử dụng, nhưng không được kiêm nhiệm. Dọn dẹp thư mục tạm thời của bạn khi hàm kết thúc và xem sự cố có giải quyết hay không.

+0

Tôi đã thử nó, tôi làm sạch/tmp ở đầu và cuối trong mã. –

Các vấn đề liên quan