Tôi đang làm việc trong một môi trường nhúng, nơi các nguồn lực là khá hạn chế. Chúng tôi đang cố gắng sử dụng Node.js, mà hoạt động tốt, nhưng thường tiêu thụ khoảng 60 MB bộ nhớ ảo (. Bộ nhớ thực sử dụng là khoảng 5 MB) Với những hạn chế của chúng tôi, đây là quá nhiều bộ nhớ ảo; chúng tôi chỉ có thể đủ khả năng cho phép node.js sử dụng khoảng 30 megabyte máy ảo, nhiều nhất.Làm thế nào để hạn chế sử dụng bộ nhớ ảo bởi node.js?
Có một số tùy chọn dòng lệnh cho Node.js, chẳng hạn như "--max_old_space_size", "--max_executable_size", và "--max_new_space_size", nhưng sau khi thử nghiệm, tôi thấy rằng các bài kiểm soát bộ nhớ thực sử dụng, không phải kích thước bộ nhớ ảo tối đa.
Nếu vấn đề, tôi đang làm việc trong một biến thể ubuntu linux trên kiến trúc ARM.
Có bất kỳ tùy chọn hoặc thiết lập này sẽ cho phép một để đặt số tiền tối đa của bộ nhớ ảo rằng một quá trình Node.js được phép sử dụng không?
Tại sao mà phải là một vấn đề? Linux sử dụng phân bổ quá mức: Bộ nhớ ảo này sẽ chỉ tồn tại dưới dạng các mục nhập bên trong bảng trang quy trình cho đến khi nó được * acutually * sử dụng. –
Hm. Tôi không chắc. Đây là một môi trường nhúng (có nghĩa là: không có không gian đĩa) vì vậy sẽ không phải tất cả các phân bổ ảo sử dụng hết một số bộ nhớ thực? Tôi sẽ đặt tư tưởng đó cho sếp của tôi, nhưng tôi có cảm giác rằng nó sẽ không tạo ra bất kỳ sự khác biệt nào; Tôi đã được lệnh phải giảm bớt dấu chân và tranh luận rằng tôi không cần phải không mang theo nhiều cân. Các 'khách hàng luôn luôn đúng' loại điều. Bên cạnh đó, tôi đã gặp phải một vấn đề khác; Tôi đã viết một hàm bằng cách sử dụng setrlimit() để hạn chế sử dụng bộ nhớ ảo nhỏ hơn 55 megs, và bây giờ node.js thoát với một lỗi malloc. Bất kỳ đề xuất? – Mike
Xin chào Mike. Làm thế nào bạn giải quyết được điều này? – Industrial