Có rất nhiều bạn phàn nàn vấn đề rằng VPS luôn sử dụng full RAM, lượng RAM trống lúc nào cũng rất ít. Tuy nhiên, các bạn đã xem thông tin RAM đúng cách chưa? Hãy tham khảo bài viết bên dưới.

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

free -m
cat /proc/meminfo
top
vmstat -s

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


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


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

Hy vọng, qua bài viết này, các bạn có cái nhìn đúng đắn về tình trạng tải của server cũng như có các quyết định kịp thời trong việc nâng cấp server(nếu cần thiết).

Comment của bạn

Your email address will not be published. Required fields are marked *

51 Comments

  1. Lâm 8 comment

    vps em đợt mua cài đc 1 con web rồi để đó lúc ram tầm 500mb , để bẵng 6 tháng ko động đến giờ thấy nó báo ram đầy , em restart vps vẫn vậy . Có cách nào kiểm tra không anh ơi

    1. Việt Phương Moderator

      Bạn kiểm tra top -m xem các hoạt động nào sử dụng ram nhiều. Kết quả free -m của bạn là gì?
      Và bạn cài swap chưa

          1. Việt Phương Moderator

            Mình thấy bình thường, không quá đầy. Chỉ có apache xử lý nhiều, chắc là liên quan đến truy cập hay ddos. Check log với truy cập thấy phù hợp thì kệ thôi

  2. cường 1 comment

    anh có viết lệnh xóa cache vps không anh hướng dẫn mọi người với

    1. Việt Phương Moderator

      Phần Buffer/Cache trong hệ thống phần cứng VPS, không nên động vào nhé bạn. RAM cache cho các ứng dụng thường xuyên sử dụng, tiện cho quá trình gọi lại. Bạn thiếu thì tạo SWAP hoặc xem xét nâng cấp hệ thống.
      Nếu muốn, bạn xóa cache hiện thời (show kết quả trc và sau khi xóa cache)
      free -m && sync && echo 1 > /proc/sys/vm/drop_caches && free -m
      Nặng đô hơn có thể dùng echo 3 tuy vậy không khuyến khích

  3. Ngan Ngan 1 comment

    Làm sao để tìm tiến trình sử dụng Ram or CPU nhiều nhất và ít nhất vậy mọi người

    1. Việt Phương Moderator

      top đó bạn. Còn bình thường không thấy kiểm tra ít nhất bao giờ