Trong hướng dẫn này, chúng ta sẽ khám phá một công cụ báo cáo smem Linux có thể giúp bạn báo cáo việc tiêu thụ bộ nhớ dựa trên từng quy trình và từng người dùng. Quản lý bộ nhớ, đặc biệt là theo dõi việc sử dụng bộ nhớ, là rất quan trọng đối với hệ thống Linux của bạn. Có nhiều công cụ khác nhau có sẵn trên các bản phân phối Linux khác nhau để theo dõi việc sử dụng bộ nhớ, mỗi công cụ hoạt động theo cách riêng biệt.
Cách cài đặt Smem Linux – Công cụ báo cáo bộ nhớ
smem là một công cụ báo cáo bộ nhớ dòng lệnh cung cấp cho người dùng các báo cáo đa dạng về việc sử dụng bộ nhớ trên hệ thống Linux. Có một điều đặc biệt về smem, khác với các công cụ báo cáo bộ nhớ truyền thống khác, nó báo cáo PSS (Proportional Set Size), một biểu diễn ý nghĩa hơn về việc sử dụng bộ nhớ bởi các ứng dụng và thư viện trong một thiết lập bộ nhớ ảo.
Các công cụ truyền thống hiện có tập trung chủ yếu vào việc đọc RSS (Resident Set Size), một đơn vị đo tiêu chuẩn để theo dõi việc sử dụng bộ nhớ trong một hệ thống bộ nhớ vật lý, nhưng có xu hướng đánh giá quá mức việc sử dụng bộ nhớ bởi các ứng dụng.
PSS, ngược lại, cung cấp một đo lường hợp lý bằng cách xác định phần bổ phận của bộ nhớ được sử dụng bởi các ứng dụng và thư viện trong một thiết lập bộ nhớ ảo.
Các tính năng của công cụ smem:
- Danh sách tổng quan hệ thống
- Danh sách và lọc bởi quy trình, bản đồ hoặc người dùng
- Sử dụng dữ liệu từ hệ thống tệp / proc
- Cột danh sách có thể cấu hình từ nhiều nguồn dữ liệu
- Đơn vị đầu ra và phần trăm có thể cấu hình
- Dễ dàng cấu hình tiêu đề và tổng cộng trong danh sách
- Sử dụng bản chụp dữ liệu từ gương thư mục hoặc tệp tar nén
- Cơ chế tạo biểu đồ tích hợp
- Công cụ chụp nhẹ được sử dụng trong các hệ thống nhúng
Install Smem Linux
Để cài đặt smem trên Linux, sử dụng lệnh thích hợp sau đây cho bản phân phối Linux cụ thể của bạn.
sudo apt install smem [On Debian, Ubuntu and Mint]
sudo yum install smem [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/smem [On Gentoo Linux]
sudo apk add smem [On Alpine Linux]
sudo pacman -S smem [On Arch Linux]
sudo zypper install smem [On OpenSUSE]
sudo pkg install smem [On FreeBSD]
Hiển thị thống kê sử dụng bộ nhớ Linux
Để xem báo cáo về việc sử dụng bộ nhớ trên toàn bộ hệ thống, bởi tất cả người dùng hệ thống, chạy lệnh sau:
sudo smem
Smem - Công cụ Báo cáo Bộ nhớ
Khi một người dùng thường chạy smem, nó hiển thị việc sử dụng bộ nhớ bởi quy trình mà người dùng đã khởi chạy, các quy trình được sắp xếp theo thứ tự tăng dần của PSS.
Hãy xem đầu ra dưới đây trên hệ thống của tôi về việc sử dụng bộ nhớ bởi các quy trình được khởi chạy bởi người dùng tecmint:
smem
Giám sát Việc sử dụng Bộ nhớ bởi Quy trình của Người dùng
Có nhiều tùy chọn để gọi khi sử dụng smem, ví dụ: để xem việc sử dụng bộ nhớ trên toàn hệ thống, chạy lệnh sau:
sudo smem -w
Kiểm tra Việc sử dụng Bộ nhớ Toàn hệ thống
Hiển thị mức sử dụng bộ nhớ của mỗi người dùng trong Linux
Để xem việc sử dụng bộ nhớ theo người dùng, chạy lệnh sau:
sudo smem -u
Kiểm tra Việc sử dụng Bộ nhớ theo Người dùng
Bạn cũng có thể báo cáo thống kê việc sử dụng bộ nhớ theo khởi động như sau:
sudo smem -m
Kiểm tra Thống kê Việc sử dụng Bộ nhớ
Hiển thị mức sử dụng bộ nhớ trên mỗi quy trình trong Linux
Để lọc đầu ra theo tên quy trình, gọi tùy chọn -P hoặc --processfilter="regex" như sau:
sudo smem --processfilter="chrome"
Kiểm tra Việc sử dụng Bộ nhớ bởi Quy trình
Định dạng đầu ra có thể rất quan trọng và có các tùy chọn để giúp bạn định dạng các báo cáo bộ nhớ, chúng ta sẽ xem một vài ví dụ dưới đây.
Để hiển thị các cột mong muốn trong báo cáo, sử dụng tùy chọn -c hoặc --columns như sau:
sudo smem -c "name user pss rss"
Hiển thị Việc sử dụng Bộ nhớ với các Cột cụ thể
Bạn có thể gọi tùy chọn -p để báo cáo việc sử dụng bộ nhớ dưới dạng phần trăm, như trong lệnh dưới đây:
sudo smem -p
Hiển thị Việc sử dụng Bộ nhớ dưới dạng Phần trăm
Lệnh dưới đây sẽ hiển thị tổng cộng ở cuối mỗi cột đầu ra:
sudo smem -t
Hiển thị hình ảnh đại diện về mức sử dụng bộ nhớ
Ngoài ra, còn có các tùy chọn để tạo biểu đồ mà bạn cũng có thể sử dụng và chúng ta sẽ đi sâu vào chúng trong phần tiếp theo.
Bạn có thể tạo biểu đồ thanh của các quy trình và giá trị PSS và RSS của chúng, trong ví dụ dưới đây, chúng tôi tạo biểu đồ thanh của các quy trình thuộc sở hữu của người dùng root.
Mặt phẳng dọc hiển thị PSS và RSS của các quy trình và mặt phẳng ngang biểu thị từng quy trình của người dùng root:
sudo smem --userfilter="root" --bar pid -c"pss rss"
Việc sử dụng Bộ nhớ Linux trong Giá trị PSS và RSS
Bạn cũng có thể tạo biểu đồ hình bánh cho thấy các quy trình và việc tiêu thụ bộ nhớ của chúng dựa trên giá trị PSS hoặc RSS. Lệnh dưới đây xuất một biểu đồ hình bánh cho các quy trình thuộc sở hữu của người dùng root đo giá trị.
Tùy chọn --pie tên có nghĩa là gắn nhãn theo tên và tùy chọn -s giúp sắp xếp theo giá trị PSS.
sudo smem --userfilter="root" --pie name -s pss
Sự Tiêu thụ Bộ nhớ Linux theo Quy trình
Còn nhiều trường đã biết khác ngoài PSS và RSS được sử dụng để gắn nhãn biểu đồ:
Để nhận trợ giúp, chỉ cần gõ smem -h hoặc truy cập trang thông tin hướng dẫn.
smem -h
Chúng ta sẽ kết thúc ở đây với smem Linux, nhưng để hiểu nó tốt hơn, hãy sử dụng nó với nhiều tùy chọn khác mà bạn có thể tìm thấy trong trang man.