NỘI DUNG

01/05/2024
Lượt xem

Hướng dẫn các cách kiểm tra RAM trong Linux nhanh chóng

01/05/2024
[vnx_reading_time rule="220"]phút đọc[/vnx_reading_time]
Lượt xem
Ngày đăng:01/05/2024
Cập nhật cuối:21/08/2024
Lượt xem

Đánh giá

5/5 - (86 bình chọn)

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é.

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:

$ free
              total        used        free      shared  buff/cache   available
Mem:        4039588     3475216      137584       39596      426788      287580
Swap:             0           0           0

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-h:

$ free -th
              total        used        free      shared  buff/cache   available
Mem:           3.9G        3.3G        125M         38M        402M        257M
Swap:            0B          0B          0B
Total:         3.9G        3.3G        125M

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:

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 149720  49080 371348    0    0   125   121    1    1  2  1 96  0  0

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.

$ vmstat -s
      4039588 K total memory         
      3460532 K used memory          
      3398428 K active memory        
       198356 K inactive memory      
       162648 K free memory          
        48904 K buffer memory        
       367504 K swap cache           
            0 K total swap           
            0 K used swap            
            0 K free swap  

Ở 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

$ cat /proc/meminfo

MemTotal:        4039588 kB
MemFree:          142400 kB
MemAvailable:     267144 kB
Buffers:           39216 kB
Cached:           292508 kB
SwapCached:            0 kB
Active:          3436724 kB
Inactive:         180432 kB
Active(anon):    3285468 kB
Inactive(anon):    38960 kB
Active(file):     151256 kB
Inactive(file):   141472 kB
Unevictable:          36 kB
Mlocked:              36 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               708 kB

Thông tin được cung cấp cũng khớp với kết quả trả về từ lệnh freevmstat. 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 demidecode

Cần lưu ý rằng các lệnh trên chỉ dùng để kiểm tra RAM trong Linux tại một thời điểm nhất định.

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):

$ sudo dmidecode

# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
13 structures occupying 405 bytes.
Table at 0x000F10D0.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: Private
        Version: 20171212
        Release Date: 12/12/2017
        Address: 0xE8000
        Runtime Size: 96 kB
        ROM Size: 64 kB
        Characteristics:
                BIOS characteristics not supported
                Targeted content 

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:

$ sudo dmidecode --type memory

# dmidecode 3.1                               
Getting SMBIOS data from sysfs.               
SMBIOS 2.4 present.                           
                                              
Handle 0x1000, DMI type 16, 15 bytes          
Physical Memory Array                         
        Location: Other                       
        Use: System Memory                    
        Error Correction Type: Multi-bit ECC  
        Maximum Capacity: 4 GB                
        Error Information Handle: Not Provided
        Number Of Devices: 1                  
                                              
Handle 0x1100, DMI type 17, 21 bytes          
Memory Device                                 
        Array Handle: 0x1000                  
        Error Information Handle: 0x0000      
        Total Width: 64 bits                  
        Data Width: 64 bits                   
        Size: 4096 MB                         
        Form Factor: DIMM                     
        Set: None                             
        Locator: DIMM 0                       
        Bank Locator: Not Specified           
        Type: RAM                             
        Type Detail: None       

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 Prometheus
Kiểm tra Ram bằng Prometheus

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:

$ top

top - 12:16:27 up 306 days,  7:11,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 256 total,   1 running, 214 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.3 us,  0.7 sy,  0.0 ni, 97.8 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  4039588 total,   314884 free,  3436960 used,   287744 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   325952 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
23616 telegraf  20   0 1201168  19808   4944 S   1.3  0.5   1051:02 telegraf
23120 influxdb  20   0 2043020 250208   9956 S   0.7  6.2 715:58.34 influxd
 3688 root      20   0 1031632  43296      0 S   0.3  1.1 497:27.81 mongod

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:

$ htop


  1  [|                                        2.0%]   Tasks: 192, 608 thr; 1 running
  2  [|                                        0.7%]   Load average: 0.16 0.07 0.02
  Mem[||||||||||||||||||||||||||||||||||3.32G/3.85G]   Uptime: 306 days(!), 07:16:02
  Swp[                                        0K/0K]

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
29728 user      20   0 26336  4520  3148 R  1.3  0.1  0:01.11 htop                                           328872 logstash   39  19 3679M  721M     0 S  0.7 18.3 11h58:46 /usr/bin/java -Xms1g -Xmx1g -

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é!

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
khuyến mãi tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu ích