Xem dung lượng bộ nhớ linux

Vấn đề full disk chắc hẳn cũng sẽ gây nên một số rắc rối nhất định phải không các bạn? Đặc biệt là đối với các bạn mới tập làm quen với việc quản trị hệ thống server Linux.

Trong một số trường hợp, bạn cần tìm nhanh xem file hay thư mục nào đang chiếm nhiều dung lượng nhất trên ổ cứng. Và thông thường, chúng ta sẽ cần tìm ở một số thư mục chính có khả năng chiếm nhiều dung lượng như /tmp, /home hay /var.

Trên Linux không có lệnh đơn nào cho phép thống kê các file/thư mục chiếm nhiều dung lượng. Mặc dù vậy, bằng sự kết hợp của nhiều lệnh cơ bản (sử dụng câu lệnh ghép), bạn sẽ dề dàng tìm thấy những file/thư mục đang chiếm nhiều dung lượng nhất.

Hướng dẫn kiểm tra Memory trên Linux

8 tháng ago

Ky Tran

4 minutes

I. Kiểm tra :
  • Để kiểm tra memory và mức độ sử dụng memory trên server, ta sử dụng lệnh:

    free -m

    Xem dung lượng bộ nhớ linux


  • Trong đó:
    • total (Mem): tổng dung lượng memory trong server.
    • used (Mem): tổng dung lượng memory đã sử dụng cho các ứng dụng và kernel trong server.
    • free (Mem): dụng lượng memory còn trống (chưa sử dụngs.
    • shared (Mem): đây là dung lượng memory được sử dụng chủ yếu cho .
    • buff/cache (Mem): tổng dung lượng memory được sử dụng cho cả buffers và cache, với:
      • buffers: là vùng lưu trữ tạm thời trước khi chuyển vào thiết bị đầu vào hoặc thiết bị đầu ra. Bộ nhớ buffers thường được sử dụng trong tiến trình input/output như in ấn, burn CD,…
      • cached: là kích thước vùng nhờ Linux page cache. Linux thực thi tất cả thao tác I/O thông qua Linux page cache , qua đó tăng tốc độ đọc ghi.
    • available (Mem) : đây là dung lượng memory sẳn có để có thể khởi chạy một ứng dụng hoặc tiến trình mới mà không cần hoán đổi (nó bao gồm hầu hết bộ nhớ memory free ).
    • total (Swap) : đây là tổng dung lượng ổ đĩa được sử dụng cho phần swap. Bạn có thể kiểm tra thông số này thông qua lệnh swapon -s .
    • used (Swap) : đây là dung lượng swap đã được sử dụng. Lệnh swapon -s cũng hiển thị kết quả tương đương.
    • free (Swap) : dung lượng swap hiện không được sử dụng. Nó bằng total (swap) – used (swap).
  • Ở ví dụ trên hình, thông số sẽ như sau:
    • Tổng dung lượng Memory bằng 1,8 GB (total)
    • Đã sử dụng 137 MB (used)
    • Dung lượng chưa sử dụng bằng 1,5 GB (free)
    • Dung lượng bộ nhớ sử dụng cho việc lưu đệm bằng 161 MB (buff/cache)
II. Tại sao dung lượng Memory trên server nhận không đủ.
  • Lấy lại ví dụ ở trên, server có 2 GB RAM bộ nhớ nhưng khi kiểm tra thì hệ điều hành chỉ nhận 1.8 GB, nguyên nhân một phần Memory đã bị chiếm dụng bởi nhân hệ thống (Linux KernelL.
  • Nhập lệnh dưới đây để hiển thị thông tin cụ thể:

    dmeg | grep -i memory

    Xem dung lượng bộ nhớ linux


  • Trong đó:
    • (1) là tổng dung lượng bộ nhớ hệ điều hành Linux đã nhận được thực sự là 2047 MB (System RAM: 2047MB).
    • (2) tổng dung lượng là 2 GB (2097152kB) nhưng lại chỉ sử dụng được 1,8 GB (1841008k).
    • (3) giá trị 255620k reserved, giá thị thể hiện trong quá trình khởi động nhân hệ điều hành đã sử dụng 255 MB để thực hiện một số module đặc biệt.
    • Nếu cộng giá trị 255620k với dung lượng bộ nhớ có thể sử dụng 1841008k chúng ta sẽ được giá trị gần bằng bằng dung lượng bộ nhớ vật lý của Server.

#kiểm tra ram #Linux #memory #ram #thiếu ram

Trong bài viết mình sẽ hướng dẫn các bạn một số cách kiếm tra dung lương bộ nhớ (RAM) sử dụng trong hệ điều hành Linux (Ở đây mình sử dụng OS CentOS 7).

Linux hỗ trợ rất nhiều command khác nhau để kiếm tra dung lượng RAM thực tế cũng như dung lượng RAM đã sử dụng. Ví dụ như câu lệnh free hiển thị tổng dung lượng bộ nhớ vật lý (Physical memory) và dung lượng bộ nhớ chuyển đổi (Swap memory) đã sử dụng. Hoặc câu lệnh top để xem dung lượng RAM đã sử dụng thời gian thực (realtime)

Chuẩn bị

Mình sẽ truy cập https://cloud365.vn/, đăng ký gói Cloud VPS B với cấu hình 2 core, 2 GB RAM, 25 GB ở đĩa.

Xem dung lượng bộ nhớ linux

Kiểm tra dung lượng bộ nhớ

Kiểm tra dung lượng bộ nhớ đơn giản

Cách đơn giản nhất để kiếm tra dung lượng bộ nhớ của Cloud VPS là các bạn sử dụng câu lệnh free

ở đây mình sẽ thực hiện câu lệnh free -h

Kết quả

Xem dung lượng bộ nhớ linux

Kết quả cho thấy, Cloud VPS của mình có thông số bộ nhớ RAM như sau:

  • (1) Tổng dung lượng bộ nhớ bằng 1,8 GB (total)
  • (2) Đã sử dụng 80 MB (used)
  • (3) Dung lượng rảnh rỗi bằng 1,5 GB (free)
  • (4) Dung lượng bộ nhớ sử dụng cho việc lưu đệm bằng 228 MB (
    cat /proc/meminfo
    less /proc/meminfo
    
    1)

Lưu ý:

  • Số RAM trống tuy chỉ bằng 1.5 GB (free) nhưng thực tế bạn có thể sử dụng nhiều hơn thế. Tổng số bộ nhớ có thể sử dụng sẽ bằng free +
    cat /proc/meminfo
    less /proc/meminfo
    
    1. Vậy ở đây, số RAM thực sự có thể sử dụng được sẽ bằng 1.728 GB.
  • Lượng bộ nhớ RAM được
    cat /proc/meminfo
    less /proc/meminfo
    
    1 thường được sử dụng để cải thiện hiệu năng đọc ghi ổ đĩa. Vì bộ RAM sẽ có tốc độ truy vấn, đọc ghi cao hơn rất nhiều so với tốc độ truy vấn, đọc ghi ổ đĩa nên hệ điều hành sử dụng lượng RAM còn trống để cài thiện hiệu năng.

Vậy mình đã hướng dẫn các kiểm tra thông số bộ nhớ đơn giản. Tiếp theo mình sẽ hướng dẫn phương pháp nâng cao.

Kiểm tra dung lượng bộ nhớ nâng cao

Để kiếm tra các thông số chi tiết về bộ nhớ RAM, chúng ta sẽ kiểm tra file

cat /proc/meminfo
less /proc/meminfo
6. Bản thân câu lệnh free cũng sử dụng file
cat /proc/meminfo
less /proc/meminfo
8 để kiếm tra dung lượng bộ nhớ RAM của Cloud VPS.

Thống số trong file

cat /proc/meminfo
less /proc/meminfo
6 khá nhiều nên mình sẽ chỉ tập trung vào các tham số quan trọng về bộ nhớ.

Thực hiện câu lệnh

egrep --color 'Mem|Cache' /proc/meminfo

Xem dung lượng bộ nhớ linux

Mình sẽ giải thích kết quả ở bên dưới

Xem dung lượng bộ nhớ linux

  • (1) free0: Đây là tổng số bộ nhớ RAM hiện có (Đơn vị kilobyte). Ở đây giá trị bằng free1 tức bằng 1,8 GB đúng như kết quả của câu lệnh free

Xem dung lượng bộ nhớ linux

  • (2) free3: Đây là số bộ nhớ RAM trống, giá trị bằng free4 tức bằng 1,5 GB.

Xem dung lượng bộ nhớ linux

  • (3) free5: Đây tổng số RAM có thể sử dụng, giá trị bằng free6 tức bằng 1,6 GB. Như mình đã nói tuy số dung lượng bộ nhớ trống bằng 1,5 GB tuy nhiên bạn có thể sử dụng nhiều hơn.

Xem dung lượng bộ nhớ linux

  • (4) free7: Đây là dung lượng bố nhớ sử dụng làm bộ lưu đệm. Vì bộ nhớ RAM sẽ có tốc độ truy vấn đọc ghi rất cao nên hệ điều hành sử dụng lượng RAM còn trống để cài thiện hiệu năng, tuy nhiên khi cần sử dụng bộ nhớ RAM hệ điều hành sẽ tự động giải phóng bộ nhớ đệm.

Các cách kiểm tra tương tự

cat /proc/meminfo
less /proc/meminfo

Một số câu lệnh kiểm tra thông dụng

Hiện thị dung lượng bộ nhớ có thể sử dụng bằng câu lệnh free8, câu lệnh hiện thị dung lượng bộ nhớ dạng megabytes:

Kết quả

Xem dung lượng bộ nhớ linux

Hiện thị dung lượng bộ nhớ có thể sử dụng bằng câu lệnh free9

Kết quả

Xem dung lượng bộ nhớ linux

Lý do dung lượng RAM Cloud VPS nhận thiếu

Xem dung lượng bộ nhớ linux

Đến đây mình nghĩ một số bạn sẽ thắc mắc tại sao mình đăng ký gói Cloud VPS gói B với 2 GB RAM bộ nhớ nhưng khi kiểm tra thì hệ điều hành chỉ nhận 1.8 GB. Vậy có phải hệ điều hành đã nhận thiếu RAM hoặc nhà cung cấp đã cung cấp thiếu bộ nhớ cho Cloud VPS?.

Sau đây mình sẽ giải thích lý do. Thực ra, hệ điều hành Linux đã nhận đủ dung lượng bộ nhớ RAM là 2 GB tuy nhiên trong quá trình khởi động hệ điều hành một phần RAM đã bị chiếm dụng bởi nhân hệ thống (Kernel Linux).

Mình sẽ kiểm tra bằng câu lệnh

Kết quả

Xem dung lượng bộ nhớ linux

Nhìn vào (1) dễ thấy tổng dung lượng bộ nhớ hệ điều hành Linux đã nhận được thực sự là 2047 MB (top0).

Tới (2), chúng ta thấy tuy tổng dung lượng là 2 GB (top1) nhưng lại chỉ sử dụng được 1,8 GB (top2).

Để ý tới (3), chúng ta sẽ lưu ý giá trị top3, giá thị thể hiện trong quá trình khởi động nhân hệ điều hành đã sử dụng 259 MB để thực hiện một số module đặc biệt.

Nếu cộng giá trị top4 với dung lượng bộ nhớ có thể sử dụng top2 chúng ta sẽ được giá trị gần bằng hoặc bằng dung lượng bộ nhớ vật lý của Cloud VPS. Tuy nhiên, bạn không phải lo lắng vì dung lượng bộ nhớ sử dụng cho nhân hệ điều hành sẽ được giải phóng một phần, trả lại cho bộ nhớ RAM. Vì vậy tuy dung lượng bộ nhớ là 1.8 GB nhưng bạn có thể sử dụng nhiều hơn thế.

Nguồn

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt

https://serverfault.com/questions/219987/why-doesnt-the-value-in-proc-meminfo-seem-to-map-exactly-to-the-system-ram/219990#219990