close

Cách đọc thông số ram qua lệnh free

Tác giả: Nguyen Văn Phong Ngày cập nhật: 28/02/2020 Chuyên mục:
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Để xem lượng RAM đã sử dụng chúng ta có rất nhiều lệnh khác nhau như:

free -m (Tính dung lượng theo MB)
free (Tính dung lượng theo KB)
cat /proc/meminfo
top
vmstat -s

Chẳng hạn một ví dụ đối với lệnh free:

free -m

               total     used      free      shared      buff/cache      available
Mem:           1838      553       494          11         789             1074
Swap:          4095       0        4095
  1. total Hiển thị tổng dung lượng RAM có .
  2. used Hiển thị RAM đã sử dụng.
  3. free Hiển thị ram còn trống.
  4. shared hiển thị ram sử dụng dành cho dịch vụ ramdisk
  5. buffers hiển thị ram sử dụng bởi kernel buffers.
  6. cached Ram sử dụng bởi page cache và slabs(Cached and Slab available in /proc/meminfo).
  7. buffers/cache  hiển thị tổng dung lượng buffers và cache.
Thực tế thì: Total = used + free + buff/cache.

Tuy nhiên, thông số MemFree trả về không phải là lượng bộ nhớ hệ thống còn trống.

Bởi vì Total memory ở Linux được tính bằng Active memory + Inactive memory (không tính Swap). Vấn đề ở chỗ Inactive memory, là vùng nhớ khi ta run 1 process và tắt đi, system sẽ cache lại vùng nhớ này để khi gọi lại process này lần nữa, nó sẽ sử dụng vùng nhớ inactive này ngay lập tức thay vì phải cấp phát lại. Nên khi ta mở càng nhiều process, sau đó tắt đi, inactive memory càng chiếm nhiều(kỹ thuật Disk Caching của Linux)

Khi mở lên 1 process mới, nếu hệ thống thiếu RAM thì Linux sẽ tự động chuyển vùng bộ nhớ Inactive vào Swap và dành toàn bộ memory cho active process. Như vậy, hệ thống không bị quá tải.

Kết luận, dấu hiệu để nhận biết hệ thống có đang thiếu RAM hay không đó là bạn hãy nhìn vào Swap, nếu Swap sử dụng nhiều chứng tỏ đang bị thiếu RAM, lúc này cần nâng cấp bộ nhớ cho VPS/Server.

Trong trường hợp không có swap, các bạn hãy sử dụng lệnh free -h và nhìn vào dòng-/+ buffers/cache để xem hệ thống đang thực sự free bao nhiêu memory.

Đối với CentOS 6

Cách đọc thông số ram qua lệnh free 1
Hệ thống có tổng cộng 996MB RAM, mới dùng 193MB (19.37%) và còn trống 802MB. Swap 2GB chưa được dùng đến.

Đối với CentOS 7

08.31.2019-15.22.01
Hệ thống có tổng cộng 488MB RAM, sử dụng thực tế chỉ 125MB. Còn trống 6MB và 357MB (sử dụng làm buff/cache). Swap 1GB chưa được dùng đến. Điều bạn cần quan tâm là lượng RAM trống thực tếmà các ứng dụng có thể sử dụng (available) – 286MB

Như vậy, tín hiệu để bạn lo lắng là khi:

  • Available memory hoặc free của -/+ buffers/cache tiến đến 0
  • Mức sử dụng swap gia tăng

Đối với trường hợp xảy ra khi có dấu hiệu dùng quá nhiều ram, bạn nên kiểm tra lại dịch vụ hoặc có kế hoạch nâng cấp Ram đối với VPS của mình. Với các hệ điều hành linux, mức độ ra khuyên dùng với bất kỳ một VPS để chạy các dịch vụ website nên tối thiểu là 2GB.

 

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886