Linux “ăn” hết RAM của VPS/Server

Vào một ngày đẹp trời, bạn kiểm tra lượng RAM còn trống của VPS/Server và thấy con số này khá thấp mặc dù nhu cầu sử dụng RAM của bạn không cao và bạn nghĩ RAM bạn gặp vấn đề.

1. Điều gì đã xảy ra?

Trong điều kiện bình thường, Linux sẽ “mượn” một phần memory không được sử dụng tới để thực hiện disk caching. Điều này khiến ta hiểu lầm rằng memory khả dụng đang ở mức thấp, nhưng không phải thế. Mọi thứ đều ổn cả!

http://vinahost.info/va/uploads/17/d8e5fb5d7e-linux-an-het-ram-cua-vps-server-1.png

2. Tại sao lại có chuyện này?

Tính năng disk caching có tác dụng giúp cho hệ thống của ta hoạt động và phản hồi nhanh hơn, từ đó dẫn đến hiệu suất hoạt động của hệ thống được nâng cao. Nó không lấy đi bất kì lượng memory nào mà ứng dụng đang sử dụng.

3. Nếu tôi chạy nhiều ứng dụng hơn thì sẽ như thế nào?

Nếu các ứng dụng của bạn có nhu cầu sử dụng thêm memory, các ứng dụng đó chỉ việc lấy lại phần memory đã cho “mượn” trước đó để thực hiện disk caching và lượng memory này sẽ được trả lại ngay lập tức.

4. Tôi có cần tăng thêm swap hay không?

Câu trả lời là không, bởi vì tính năng disk caching chỉ mượn lượng RAM mà các ứng dụng không xài tới và nó không sử dụng tới swap.

5. Làm sao để ngăn Linux thực hiện việc disk caching?

Bạn không thể tắt tính năng disk caching của Linux. Lý do duy nhất khiến người dùng muốn tắt tính năng này là vì họ nghĩ nó chiếm lấy memory từ ứng dụng của họ, nhưng như đã giải thích ở trên, điều này là không đúng! Tính năng disk caching giúp cho ứng dụng được load nhanh hơn và hoạt động trơn tru hơn.

6. Làm cách nào để tôi kiểm tra lượng RAM tôi thật sự đang có?

Để xem lượng RAM mà các ứng dụng của bạn có thể sử dụng mà không thực hiện swaping, ta dùng lệnh free -m và theo dõi ở cột available

http://vinahost.info/va/uploads/17/87bbac303e-linux-an-het-ram-cua-vps-server-2.png

Hình trên là kết quả sau khi thực thi lệnh và được tính theo Megabyte. Nếu ta chỉ nhìn và cột free và ta nghĩ rằng lượng RAM còn trống chỉ còn khoảng 56% nhưng thực tế con số đó phải là 72%.

7. Khi nào tôi nên bắt đầu lo lắng?

Một hệ thống Linux “khỏe mạnh” với lượng memory vừa đủ nhu cầu sử dụng, sau một thời gian hoạt động, những biểu hiện sau đây được xem là vô hại:

  • free memory gần bằng 0
  • used memory gần bằng với total memory
  • available memory (hay free + buff/cache) chiếm vừa đủ (khoảng hơn 20% của total)
  • swap không đổi

Các dấu hiệu cho thấy hệ thống đang ở trạng thái thiếu memory:

  • available memory (hay free + buff/cache) gần bằng 0
  • swap tăng hoặc dao động không ổn định
  • thực thi lệnh dmesg | grep oom-killer và thấy tiến trình OutOfMemory-killer đang hoạt động

Xin cảm ơn!

Was this article helpful?