Một hệ thống thiếu bộ nhớ vật lý (RAM) sẽ chạy chậm hơn đáng kể, vì các tiến trình được di chuyển giữa RAM và trao đổi. Nếu một hệ thống Linux bắt đầu chạy chậm, một trong những nhiệm vụ xử lý sự cố đầu tiên là giải phóng bộ nhớ vật lý.

Có nhiều công cụ có sẵn để giám sát việc sử dụng bộ nhớ trên một hệ thống Linux, kể cả trên cùng, mà chúng ta đã thảo luận. Smem là một công cụ khác, được sử dụng để theo dõi việc sử dụng bộ nhớ. Ngoài việc hiển thị việc sử dụng bộ nhớ của các quy trình trên dòng lệnh, smem cũng có thể hiển thị một chiếc bánh được mã hóa màu và / hoặc biểu đồ thanh. Với smem, bạn có thể dễ dàng hình dung việc sử dụng bộ nhớ trên hệ thống Linux của bạn.

Cài đặt

Trên hệ thống Debian và Ubuntu, smem có thể được cài đặt từ kho chứa bằng lệnh

 sudo apt-get cài đặt smem 

Kiểm tra mức sử dụng bộ nhớ

Chạy smem như một người dùng không có đặc quyền sẽ hiển thị bộ nhớ được sử dụng bởi tất cả các tiến trình được khởi chạy với ID người dùng hiện tại, được PSS yêu cầu từ ít nhất đến nhiều nhất.

 smem 

Theo mặc định, có bảy cột, ID tiến trình, tên người dùng, lệnh được sử dụng để khởi chạy quy trình, lượng không gian hoán đổi được phân bổ cho quy trình và USS, PSS và RSS.

RSS

RSS (Resident set size) là tổng bộ nhớ được giữ trong RAM cho một quá trình. Điều này bao gồm bộ nhớ được cấp phát cho các thư viện được sử dụng bởi quá trình này, mặc dù các thư viện chia sẻ có thể được sử dụng bởi nhiều tiến trình, trong khi chỉ được tải một lần trong bộ nhớ. Do đó, RSS không phải là biểu diễn chính xác của bộ nhớ được sử dụng bởi một quy trình đã cho.

PSS

Mặt khác, PSS (tỷ lệ đặt theo tỉ lệ) chia sẻ bộ nhớ được cấp phát cho một thư viện được chia sẻ giữa các quy trình sử dụng nó. Do đó, nếu ba quy trình sử dụng một thư viện được chia sẻ có sáu mươi trang, thư viện sẽ đóng góp hai mươi trang cho PSS của từng quy trình. Tổng PSS thường bằng tổng số RAM của hệ thống. Tuy nhiên, khi một quá trình chia sẻ một thư viện bị giết, PSS báo cáo cho quá trình này không bằng tổng số bộ nhớ được giải phóng.

USS

USS (Kích thước thiết lập duy nhất) đề cập đến tổng bộ nhớ duy nhất cho một quá trình. Điều này không bao gồm bộ nhớ từ các thư viện được chia sẻ. Khi một quá trình bị giết, USS đề cập đến bộ nhớ thực tế sẽ được giải phóng. Kết quả là, USS là giá trị để xem nếu bạn nghi ngờ một quá trình có rò rỉ bộ nhớ.

Chạy smem dưới dạng root cho thấy tất cả các tiến trình cho tất cả người dùng trên hệ thống.

 sudo smem 

Trực quan hóa sử dụng bộ nhớ

Một báo cáo trực quan gần như chắc chắn dễ đọc hơn các kết quả dựa trên văn bản. Sử dụng smem, bạn có thể xem việc sử dụng bộ nhớ như biểu đồ hình tròn hoặc biểu đồ thanh.

Để xem biểu đồ thanh cho PSS, USS và RSS của các quy trình của người dùng hiện tại, hãy chạy lệnh sau:

 smem --bar name -c "pss uss rss" 

Nhớ lại rằng PSS là một sự phản ánh gần hơn của tổng bộ nhớ có sẵn trên hệ thống. Để xem biểu đồ hình tròn, hãy sử dụng lệnh sau:

 smem --pie tên 

Để xem biểu đồ hình tròn của RSS được gắn nhãn theo tên:

 smem --pie tên -s rss 

Sử dụng smem, bạn có thể dễ dàng xem bộ nhớ được sử dụng bởi các ứng dụng và quy trình trên hệ thống của bạn, với biểu đồ hình tròn hoặc biểu đồ thanh được mã hóa màu sắc hữu ích. Như thường được nói, một bức tranh trị giá một ngàn chữ. Có vẻ như các nhà phát triển smem đồng ý.