RAM là một thành phần vô cùng quan trọng trong mọi hệ thống Linux và luôn cần được giám sát chặt chẽ vì việc hết bộ nhớ có thể khiến server phản hồi rất chậm hay thậm chí không phản hồi. Cùng Vietnix tham khảo qua bài viết dưới đây để tìm hiểu rõ hơn bạn nhé.
Tổng hợp 6 cách kiểm tra RAM trong Linux
Kiểm tra bằng lệnh free
Lệnh phổ biến nhất để kiểm tra RAM trên Linux là lệnh free:
Output của lệnh được chia thành 2 mục: bộ nhớ (RAM thực/memory) và swap (bộ nhớ ảo). Một số thông tin ta có được từ lệnh là:
- total: tổng bộ nhớ được cài đặt trên hệ thống, tính theo đơn vị kilobyte.
- used: tổng RAM được dùng trên hệ thống, đơn vị kilobyte.
- free: tổng bộ nhớ còn trống và khả dụng trên hệ thống (kilobyte).
- shared: phần bộ nhớ được dùng bởi tmpfs – một filesystem ảo.
- buffer: bộ nhớ dùng bởi kernel buffer.
- cache: tổng bộ nhớ dùng bởi trang cache – nơi lưu trữ dữ liệu trước khi ghi vào đĩa.
- available: tổng bộ nhớ khả dụng trên hệ thống (kilobyte).
Trong đó, phần bộ nhớ được dùng bởi cache hoặc buffer đều có thể được giải phóng bởi Kernel mỗi khi hệ thống cần.
Bên cạnh đó, ta cũng có thể thêm option -h vào lệnh free để hiển thị kết quả ở định dạng dễ đọc hơn:
total used free shared buff/cache available
Mem: 3.9G 3.3G 127M 38M 400M 256M
Swap: 0B 0B 0B
Tương tự, ta cũng có thể hiển thị thêm cột Total bằng option -t:
$ free -t
total used free shared buff/cache available
Mem: 4039588 3499392 128828 39596 411368 263292
Swap: 0 0 0
Total: 4039588 3499392 128828
Kết hợp -t và -h:
Bạn đọc có thể tham khảo qua một số bài viết cùng chủ để Linu mà Vietnix đã tổng hợp:
Kiểm tra RAM trong Linux bằng lệnh vmstat
Lệnh vmstat cũng có phép kiểm tra phần bộ nhớ ảo trên hệ thống:
Output sẽ hơi khó hiểu hơn một chút, với các thông tin như sau:
- r: số lượng process chạy được có ở trên hệ thống.
- b: số lượng process trong trạng thái sleep liên tục.
- swpd: lượng RAM đang được sử dụng.
- free: bộ nhớ còn trống.
- buff, cache: RAM được dùng bởi kernel buffer và cache trang.
- inactive, active: số lượng bộ nhớ đang ở trang thái hoạt động và không hoạt động.
- si: swap được dùng bởi đĩa.
- so: tổng bộ nhớ swap được swap sang đĩa.
Các cột khác là những thông tin liên quan đến CPU và I/O, vì ta chỉ cần kiểm tra RAM trong Linux nên có thể bỏ qua những thông số này.
Ở các dòng đầu tiên của output, bạn có thể biết được thông tin khá giống với lệnh free bao gồm:
- Tổng bộ nhớ
- Bộ nhớ đã được sử dụng,
- Bộ nhớ đang ở trạng thái hoạt động,
- Bộ nhớ ở trạng thái không hoạt động
- Bộ nhớ còn trống.
Kiểm tra RAM trong Linux bằng file /proc/meminfo
Kernel chính là thành phần ảo hóa filesystem và cung cấp các điểm truy cập cho một số thiết bị trên hệ thống. Trong đó, thư mục /proc thường sẽ lưu trữ các tham chiếu đến những process trên hệ thống, còn /dev lưu trữ tham chiếu đến các thiết bị ảo. Bên cạnh đó, trong thư mục /proc còn có file meminfo cũng có thể được dùng để kiểm tra RAM trong Linux
Thông tin được cung cấp cũng khớp với kết quả trả về từ lệnh free và vmstat. File /proc/meminfo cho biết thông tin về tổng bộ nhớ trên hệ thống, bộ nhớ còn trống, bộ nhớ khả dụng và buffer, page cache.
Kiểm tra bằng dmidecode
Nếu muốn kiểm tra phần cứng RAM thì ta có thể dùng lệnh dmidecode (chạy bằng quyền sudo):
Theo mặc định thì lệnh dmidecode được dùng để dump (kết xuất) tất cả phần cứng có trên hệ thống. Nếu muốn xem thông tin gần cứng riêng của bộ nhớ thì ta cần chỉ định thêm loại phần cứng như sau:
Kiểm tra RAM bằng Prometheus
Bên cạnh cách sử dụng lệnh truyền thống, bạn có thể sử dụng những công cụ giám sát hiện đại như Prometheus và Grafana. Prometheus cho phép sử dụng công cụ Node Exporter để thu thập các chỉ số host, chẳng hạn như chỉ số về bộ nhớ trong file /proc/meminfo.
Sau khi thu thập xong, bạn import một dashboard có sẵn vào Grafana để giám sát thông số bộ nhớ trong thời gian thực.
Kiểm tra RAM bằng lệnh top/htop
Một cách phổ biến nữa để kiểm tra RAM trong Linux là dùng lệnh top trong Linux hay htop. Trong đó top đã được cài đặt sẵn trên hệ thống:
Bên cạnh thông tin về CPU thì lệnh top còn cho phép kiểm tra RAM có trên hệ thống.
Lệnh htop cũng cho phép kiểm tra bộ nhớ trên server, nhưng có thể chưa có sẵn trên máy. Ta có thể cài đặt qua yum hoặc apt như sau:
$ sudo apt-get install htop
$ sudo yum install htop
Kiểm tra RAM bằng lệnh htop:
Lệnh htop cũng cho ra kết quả tương tự, nhưng ở định dạng thân thiện hơn với người dùng.
Lời kết
Trong bài viết này, Vietnix đã hướng dẫn nhiều cách khác nhau để kiểm tra RAM trong Linux thông qua việc sử dụng lệnh và cả những công cụ giám sát hiện đại như Prometheus hặc Grafana. Việc giám sát RAM thường xuyên là vô cùng quan trọng đối với mọi quản trị viên của hệ thống, nếu bạn đọc hứng thú với chủ đề quản trị hệ thống Linux thì đừng bỏ lỡ những bài viết sắp tới của Vietnix nhé!