Câu hỏi này được đề cập ở đây rất chi tiết.
Làm thế nào để bạn đo mức sử dụng bộ nhớ của một ứng dụng hoặc quy trình trong Linux?
Từ bài viết trên blog về Tìm hiểu sử dụng bộ nhớ trên Linux , ps
không phải là một công cụ chính xác để sử dụng cho mục đích này.
Tại sao
ps
"sai"Tùy thuộc vào cách bạn nhìn vào nó,
ps
không báo cáo việc sử dụng bộ nhớ thực của các quá trình. Những gì nó thực sự đang làm là hiển thị bao nhiêu bộ nhớ thực mỗi quá trình sẽ chiếm nếu nó là quá trình duy nhất đang chạy . Tất nhiên, một máy Linux điển hình có vài chục tiến trình đang chạy tại bất kỳ thời điểm nào, điều đó có nghĩa là các số VSZ và RSS được báo cáops
gần như chắc chắn sai .
ps
không thể hiện điều đó - nó hiển thị số bộ nhớ ảo và bộ nhớ trong, trong đó bộ nhớ ảo là số lượng bộ nhớ tối đa theo lý thuyết có thể sử dụng nó, đó là quy trình duy nhất (không bao giờ như vậy), được sử dụng cho mỗi trang được phân bổ (không bao giờ xảy ra) và không ánh xạ hoặc bỏ sơ đồ bất kỳ trang nào (không chắc). Trong khi cư dân cho thấy có bao nhiêu bộ nhớ ảo được ánh xạ tới vật lý ngay bây giờ. virt > usage > res
Tuy nhiên, thông thường trên hệ thống 64 bit virt ~= res*10
, phạm vi rất rộng.