phiên bản QEMU emulator version 1.1.2 (qemu-kvm-1.1.2+dfsg-6+deb7u3, Debian), Copyright (c) 2003-2008 Fabrice Bellard
kvm : phiên bản libvirtd: libvirtd (libvirt) 0.9.12.3
phiên bản debian:7.5
Tôi đang chạy nhiều máy ảo trên máy RAM 16 GB, tất cả chúng cùng sử dụng RAM ~ 9 GB.
Thỉnh thoảng, kẻ giết người linux xuất hiện và giết chết một quá trình. Tôi đoán nó chọn quá trình sử dụng hầu hết bộ nhớ - trong trường hợp này là máy ảo Windows 6GB:
[431215.778365] Out of memory: Kill process 25086 (kvm) score 192 or sacrifice child
IMHO máy không nên ở trong Tình huống OOM vì có ~ 6,6GB bộ nhớ đệm có sẵn. Bạn có thể thấy phân phối bộ nhớ và kết quả là oom kill tại đây:
Bây giờ tôi đã thiết lập các oom_adj
pid của kvms -17
, vì vậy kẻ giết người oom sẽ không giết quá trình này.
Nhưng tôi vẫn không hiểu tại sao kernel nghĩ rằng nó phải giết một tiến trình và sẽ không tiếp tục và giải phóng một số bộ nhớ đệm.
- Bất cứ ai có thể giải thích tại sao điều này xảy ra?
- Bạn có thể cho tôi biết làm thế nào tôi có thể ngăn chặn kẻ giết người oom giết chết các quá trình kvm của mình mà không biết đến PID không?
tmpfs
, tùy thuộc vào cách bạn kiểm tra nó có thể được tính là bộ đệm / bộ đệm mặc dù không thể giải phóng được việc hoán đổi nó.