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

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

65 Comments

  1. Hoàng Anh 1 comment

    chào mọi người, em muốn hỏi là : Laptop của em đang dùng ram DDR3, em có thể tháo nó ra và thay vào đó thanh DDR4 được không ạ? em cam ơn !

  2. Anh Nguuyen 2 comment

    VPS mình 4G RAM cài Directadmin chạy tầm 10 web mỗi web visit không nhiều, Ram trống tầm 250MB Swap đã cài và hệ thống chưa dùng đến. Như vậy thì có phải bt không Luân nhỉ.

  3. quangmen93 30 comment

    RAM VPS em tới 2GB … Dùng chưa tới 0.5GB, Cache lại tới 1.3GB, em xóa Cache để giải phóng RAM free. Nhưng chưa đầy 4 tiếng nó lại tạo Cache 1.3GB…

    Ram tạo Cache nhiều như vậy tốt hay xấu ạ ? Có lệnh nào sau 1 tiếng nó tự động xóa Cache RAM không ạ ?

    1. quangmen93 30 comment

      Và có nên xóa Cache RAM không ? Nếu có xóa, khoảng bao lâu xóa Cache RAM 1 lần là phù hợp nhất ?

    2. quangmen93 30 comment

      Anh không trả lời topic này … xin lỗi vì không đọc kỹ các topic ở trên …. ~~~ Không nên xóa Cache RAM ….Em lại không hiểu tại sao RAM em lại tạo Cache nhiều như vậy nhỉ ???

      RAM VPS em tới 2GB … Dùng chưa tới 0.5GB, Cache lại tới 1.3GB ~~ thật ….. Không biết đều này tốt hay xấu vậy anh ??

      1. Việt Phương Moderator

        Như đã đề cập, RAM là để dùng không phải để trống bạn à. Tùy theo cấu hình từ hệ điều hành mà sẽ lấy 1 lượng RAM là Cache. Và điều này là mặc định của hệ thống, đảm bảo hệ thống có thể hoạt động tốt nhất
        Như hai ảnh ví dụ trong bài viết là VPS RAM 1GB và 512MB, bạn có thể nhìn Cache Memory để thấy là lượng Cache không hề ít

  4. quang 11 comment

    Intel(R) Xeon(R) CPU @ 2.30GHz Ram 4gb SSD 30Gb Swap 2Gb
    Ad cho e hỏi Total Memory:70% mà e xem used 318Mb buff/cache 2,2Gb available 3Gb thì liệu có bị quá tải k ạ

      1. quang 11 comment

        total used free shared buff/cache available
        Mem: 3.7G 304M 754M 65M 2.7G 3.0G
        Swap: 2.0G 6.8M 2.0G

          1. quang 11 comment

            Ad cho e hỏi e dùng vps google. E thay disk 30gb thành 50gb thì e k thấy serverinfo nó cập nhật. Làm sao cập nhật cái này ạ

          2. Việt Phương Moderator

            Tùy nhà cung cấp bạn phải thiết lập thêm bên trong chứ k chỉ mỗi chỉnh giao diện control panel bên ngoài. Còn nếu như bạn đã chỉnh mà server nhận thì thôi k cần quan tâm
            df -ah bạn nhận bao nhiêu GB?

  5. 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ờ

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

  7. Lâm 11 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

  8. Thái 1 comment

    Cám ơn Luân rất nhiều, lâu nay tưởng full Ram ở dòng thứ 2, đọc xong kiểm tra lại thấy còn swap 8G used = 0 chưa dùng đến.

  9. Long 4 comment

    Anh ơi, cho em hỏi là ko biết trên centos 7 có cách nào để set giới hạn cache ram ở một ngưỡng nào đó ko anh vì em thấy cache ram nó cứ full ram em luôn làm các tiến trình khác ko sao chạy đc nữa ạ.

    1. Việt Phương Moderator

      Không nên bạn à, động đến phần cứng hệ thống. 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.
      Hoặc 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

    1. Luân Trần Admin

      RAM của bạn hiện đang ở mức 63% mà thôi. Có giai đoạn nào đó online quá đông, hết RAM và chuyển sang SWAP.

  10. Z Mụp Nguyễn 56 comment

    Nếu tổng là 1.8GB, chỉ sử dụng có 400MB, còn trống 1.4GB nhưng swap cũng sử dụng vài chục MB thì tình trạng này là như thế nào vậy ad ?

    1. Việt Phương Moderator

      Do bạn thiết lập Swappiness rồi. Swappiness là mức độ ưu tiên sử dụng swap, khi lượng RAM còn lại bằng giá trị của swappiness (tính theo tỷ lệ phần trăm) thì swap sẽ được sử dụng. Của bạn có thể dao động mức 70%
      Cụ thể tại : https://hocvps.com/swap/

  11. NamCT 1 comment

    total used free shared buffers cached
    Mem: 7.8G 7.2G 638M 124M 261M 5.7G
    -/+ buffers/cache: 1.2G 6.6G
    Swap: 1.0G 7.2M 1.0G

    Bác cho em hỏi thông số của em là bị full ram. vậy có nên xóa cache đi không? Nhưng sợ khi xóa cache ứng dụng sử lý sẽ chậm hơn, vì hiện tại nó sử lý cũn chậm rồi. db lên tới hơn ghz rồi.?

    1. Luân Trần Admin

      Swap chưa sử dụng nhiều, chức tỏ chưa bị thiếu RAM trầm trọng rồi. Cứ để đó dùng thôi bạn.

    1. Luân Trần Admin

      Bắt đầu sử dụng đến swap chứng tỏ có dấu hiệu thiếu RAM rồi đó

  12. haiquan 1 comment

    Em đang dùng con vps của pa ram 2g 3 prosesso mà không hiểu sao chạy lượng online tầm 40 50 người mà đã full ram, bác nào chỉ em làm sao cho nó hết full ram với, nâng cấp lên không biết có bị tình trang tương tự không? thanks các bác trước

    1. Luân Trần Admin

      RAM ở Linux thì lúc nào cũng gần full, do cơ chế cache của nó.
      Bạn dùng lệnh trong bài này xem output thế nào, mình coi có đáng lo ko?

    1. Luân Trần Admin

      Vẫn dùng lệnh free -m nhé bạn, thông số swap sẽ hiện dưới cùng.

      1. Nam Thanh 36 comment

        Em thấy bên nước ngoài ng ta hay làm site coupon giảm giá gì ấy. Nhưng ko biết doanh thu lấy từ đâu nhỉ?

      1. Luân Trần Admin

        Site của bác đang nổi tiếng phết, đầu tư thêm cái domain với lại giao diện cho chuyện nghiệp nữa thì quá ngon 😀

        1. Tuấn Anh 3 comment

          Ặc, bác quá lời, site nhỏ cỏn con đang tập bơi mà, hi..ý bác là em nên mua domain khác ạ ?
          Còn giao diện em cũng muốn bay qua Mythemeshop lắm mà đang còn duyên nợ với Genesis, em thích framework này vì dễ tùy biến 😀

          1. Luân Trần Admin

            Ừ mua domain khác rồi redirect qua hết cho chuyên nghiệp, domain .info dùng hơi lởm. Theme cứ từ từ cũng được.

          2. Tuấn Anh 3 comment

            Thú thật em cũng chẳng muốn xài info nhưng .com đã bị hốt sạch, còn Brand Name khác em cũng ko nghĩ ra cái nào chất nên em cứ tập trung content thẳng tiến…thank Bác góp ý…

    1. Luân Trần Admin

      Ừ, tại nhiều người có cùng câu hỏi thế này quá nên mình quyết làm 1 bài 😀