OOM Killer là gì?
OOM Killer hoặc Out Of Memory Killer là một quá trình mà kernel linux sử dụng khi hệ thống đang trong tình trạng RAM bị quá tải. Như chúng ta đã biết, hệ thống là tập hợp gồm rất nhiều các process (tiến trình) chạy trên đó. Mỗi process đều sử dụng tài nguyên như RAM, CPU, Disk của hệ thống. Tuy nhiên tài nguyên của mỗi hệ thống đều có những giới hạn nhất định, và khi tài nguyên như RAM bị sử dụng tới mức báo động đỏ thì hệ thống phải có những động tác để ngăn chặn việc này.
Chính vì vậy, OOM ra đời và được ví như một cảnh sát giúp giám sát các hoạt động của máy chủ Linux. Và nhiệm vụ của nó là sẽ Kill các process nếu như phát hiện Ram có hiện tượng quá tải. Và dịch vụ sẽ bị ưu tiên Kill đó là MySQL, đây là nguyên nhân mà một số người dùng gặp lỗi MySQL bị stop và website báo lỗi liên quan đến kết nối Database.
Bên dưới là log về OOM Kill Memory mà các bạn có thể tham khảo, các bạn SSH vào VPS và gõ
sử dụng nhanh lệnh bên dưới
dmesg | egrep -i "killed process"
[15620444.611632] OOM killed process 24119 (mysqld) total-vm:2071912kB, anon-rss:123280kB, file-rss:0kB
[15620444.619911] OOM killed process 24129 (mysqld) total-vm:2071912kB, anon-rss:124068kB, file-rss:0kB
[15620444.993822] OOM killed process 865 (rspamd) total-vm:304624kB, anon-rss:4988kB, file-rss:4kB
[16034949.519442] OOM killed process 11110 (mysqld) total-vm:2077968kB, anon-rss:217292kB, file-rss:0kB
[16035000.509327] OOM killed process 24251 (mysqld) total-vm:2054820kB, anon-rss:123236kB, file-rss:0kB
Hướng xử lý?
- Nâng cấp thêm thêm Ram
Với trường hợp này để đảm bảo hoạt động của VPS , các bạn nên cân nhắc nâng cấp thêm Ram cho VPS của mình để chúng có đủ tài nguyên vận hành. Khi đó tình trạng thiếu Ram sẽ không còn và dịch vụ Mysql sẽ không còn bị Kill nữa.
- Kiểm tra và xử lý tiến trình chiếm dụng Ram
Với cách này các bạn cần có kiến thức nhất định về quản trị máy chủ Linux. Nếu không có kiến thức về vận hành và tối ưu, hãy tìm đến các dịch vụ có chuyên môn để được hỗ trợ.
- Tạo cron check trạng thái Mysql và tự động start lại nếu bị stop
Với cách này thì bạn có thể tham khảo thêm hướng dẫn bên dưới
– Script check và khởi động lại MySQL khi bị STOP
Chúc các bạn thực hiện thành công.!