Hệ thống bộ nhớ Linux chứa rất nhiều thói quen tối ưu hóa bộ nhớ và chia sẻ bộ nhớ, làm cho ý tưởng về cách chia sẻ và tiêu thụ bộ nhớ giữa, một cách tiếp cận rườm rà. Đầu ra của ps và các lệnh liên quan đến ps khác đều xử lý đầu ra của chúng từ dữ liệu theo /proc
hệ thống tập tin. Đặc biệtps
, RSS (bộ nhớ kích thước lưu trú) và VSIZE (kích thước bộ nhớ ảo) đều quan trọng, tuy nhiên VSIZE không hiển thị cách sử dụng chính xác của bộ nhớ và sự khác biệt giữa VSIZE và rss là những gì thực sự được dự định và phân bổ cho chương trình trong quá trình khởi tạo nhưng có thể chưa được tham khảo Giống như chương trình có thể có rất nhiều thư viện được liên kết nhưng chúng chưa được tải vì chúng chưa được tham chiếu trong thời gian chạy chương trình thực tế. RSS cung cấp tổng bộ nhớ thực sự được chương trình sử dụng nhưng có thể không đưa ra một bức tranh chân thực về mức tiêu thụ bộ nhớ, vì hầu hết bộ nhớ được phân bổ có thể được chia sẻ với các phiên bản khác của cùng một quy trình hoặc các quy trình khác. Nhìn bên dưới /proc/<processid>/maps
có thể cho một ý tưởng sơ bộ về cách bộ nhớ đã được sử dụng nhưng đôi khi chúng yên tĩnh có thể gây hiểu lầm. Sử dụngpmap -x <pid>
từ dòng lệnh, hữu ích để xem sự lây lan là.
Các tiện ích thường tốt hơn là free
và vmstat
. free
sẽ cung cấp cho bạn chi tiết tiêu thụ bộ nhớ hiện tại và vmstat có thể được sử dụng để xem tần suất cập nhật.