У меня есть небольшая стойка vm (512M) под управлением centos 6.9. На нем запущен вторичный сервер имен и крошечный экземпляр wordpress для отображения статуса. Я не хочу платить втрое больше за немного больше памяти и кучу дискового пространства, которое мне не нужно.
Проблема в том, что mysqld и / или named часто убиваются из-за ошибок нехватки памяти. Я добавил 1 ГБ пространства подкачки, когда проблема впервые возникла, и, похоже, это не помогает, и на самом деле в сообщениях журнала, которые сбрасываются, когда это происходит, даже говорится, что используется мало подкачки:
Sep 10 20:51:12 rackit2 kernel: 2978 total pagecache pages
Sep 10 20:51:12 rackit2 kernel: 2361 pages in swap cache
Sep 10 20:51:12 rackit2 kernel: Swap cache stats: add 148505795, delete 148503434, find 96388662/110607450
Sep 10 20:51:12 rackit2 kernel: Free swap = 953396kB
Sep 10 20:51:12 rackit2 kernel: Total swap = 1035256kB
Sep 10 20:51:12 rackit2 kernel: 131071 pages RAM
Sep 10 20:51:12 rackit2 kernel: 5834 pages reserved
Sep 10 20:51:12 rackit2 kernel: 1767 pages shared
Sep 10 20:51:12 rackit2 kernel: 119683 pages non-shared
Другая странность заключается в том, что он говорит, что убивает httpd, хотя на самом деле он убивает mysqld:
Sep 10 20:51:12 rackit2 kernel: Out of memory: Kill process 16299 (httpd) score 15 or sacrifice child
Sep 10 20:51:12 rackit2 kernel: Killed process 16299, UID 48, (httpd) total-vm:382360kB, anon-rss:15648kB, file-rss:12kB
# ps ax | grep httpd
3904 pts/0 D+ 0:00 grep httpd
13721 ? S 0:09 /usr/sbin/httpd
26698 ? S 0:20 /usr/sbin/httpd
30254 ? Ss 14:41 /usr/sbin/httpd
# ps ax | grep mysqld
3906 pts/0 S+ 0:00 grep mysqld
#
Я вижу обсуждение ограничений на фиксацию в Linux oom, кажется, некорректно убил процесс - что я могу упустить? но это тоже кажется достаточно высоким:
CommitLimit: 1285728 kB
Committed_AS: 276332 kB
(и после перезапуска mysqld :)
CommitLimit: 1285728 kB
Committed_AS: 602712 kB