Популярная ошибка - перегрузка памяти: и процесс убивается сервером
Для понимания используем команду для отображения использования ОЗУ - оперативной памяти:
free -mтут интересный столбец появляется: available - то есть доступная память на данный момент на самом деле!!!
У меня при 6Гб ОЗУ при нормальном состоянии, available = более 4Гб
nginx invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0вот тут видно, что проблема вызвана nginx
oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/mariadb.service,task=mariadbd,pid=2970775,uid=112
Out of memory: Killed process 925737 (mariadbd) total-vm:7674688kB, anon-rss:4896652kB, file-rss:144kB, shmem-rss:0kB, UID:112 pgtables:10252kB oom_score_adj:0
где:
- pid - идентификатор процесса.
- UID - ID пользователя.
- total_vm Использование виртуальной памяти
- Использование резидентной памяти rss
- oom_score_adj Обычно 0;
Решение увеличить просто ОЗУ не помогло
---
Как определить какое приложение вызывает oom-killer? Для этого достаточно набрать команду:
journalctl --no-pager | grep killerили
journalctl -b 0 --no-pager | grep killer--no-pager нужен, чтобы применять grep
где -b 0 это выбор лога, который определяется командой:
journalctl -b 0 --list-boots там выйдет несколько файлов с логами и у них спереди цифра, вот ее мы и пишем вместо нуля тут: -b 0
в результате
journalctl --no-pager | grep killerмы получим как раз тех, кто вызывал процесс-киллер
У меня это и php-fpm и nginx и redis и mariadb , в общем все балуются
!!! На данный момент решил установить swap (файл подкачки) -
https://saitsozdanie.ru/sisadmin/fajl-podkachki-v-linux-swap.html