На неслабом, в общем то сервере на любую команду выдается
-bash: fork: Cannot allocate memory
в редкий момент просветления получил top
top - 17:52:36 up 50 days, 6:13, 1 user, load average: 1.01, 1.13, 1.03
Tasks: 1868 total, 2 running, 1866 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.8 us, 33.9 sy, 0.0 ni, 64.4 id, 0.8 wa, 0.0 hi, 0.0 si, 0.2 st
KiB Mem : 2052332 total, 59784 free, 1930936 used, 61612 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12570 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
37 root 20 0 0 0 0 R 52.4 0.0 126:43.98 kswapd0
5553 mysql 20 0 691788 147584 0 S 6.9 7.2 31:10.36 mysqld
15691 root 20 0 48052 3160 556 R 4.4 0.2 0:00.43 top
455 root 20 0 572420 16564 0 S 1.6 0.8 55:10.43 containerd
26602 root 20 0 298640 15884 0 S 1.6 0.8 6:07.22 php
5456 root 20 0 725056 18412 0 S 1.3 0.9 7:01.30 core
736 root 20 0 417512 141040 0 S 0.9 6.9 233:22.80 fail2ban-s+
5667 root 20 0 1363264 113900 0 S 0.9 5.5 26:30.04 core
7 root 20 0 0 0 0 S 0.3 0.0 31:45.10 rcu_sched
142 root 20 0 0 0 0 S 0.3 0.0 3:11.06 jbd2/vda5-8
854 ntp 20 0 102104 584 0 S 0.3 0.0 4:06.90 ntpd
15602 root 20 0 0 0 0 S 0.3 0.0 0:00.10 kworker/u4+
1 root 20 0 270292 67236 0 S 0.0 3.3 1:17.53 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.36 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:17.78 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
лично мне непонятно - свапа в системе вроде как нет, но половину CPU съедает процесс
kswapd0.
Еще очень много sleeping tasks. Я подозреваю, что они возникли так:
На сревере крутится php процесс, который хотелось бы иметь постоянно работающим. Там стоит set_time_limit(0); Но, понятно, что это не гарантирует от разных форсмажоров. Потому, этот процесс запускается кроном каждую минуту и первым делом смотрит - есть ли дубль в ps axu. Если есть - то прекращает работу. Вероятно, в какой-то момент система оказалась сильно загруженной и процесс хоть и запустился, но не смог даже проверить на дубль. Через 1 минуту это повторилось ну и так далее.
Значит, у меня 2 вопроса.
1. Поможет ли в описанной ситуации создание свап файла? Или он таки уже есть?
2. Как организовать чтоб нужный php скрипт гарантировано выполнялся, а в случае краха - перезапускался?
Спасибо.