В данной маленькой статейке я научу Вас понимать и находить причины умертвления процессов на сервере. Многие люди задаются вопросом почему процесс был запущен и потом исчез (упал)
1. Заходим под root в VDS сервер и вводим следущее.
cat /proc/user_beancounters |
2. При вводе выйдет информация в столбиках похожее на следущее.
[root@server]# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 130: kmemsize 3030706 4479695 2147483646 2147483646 0 lockedpages 0 0 999999 999999 0 privvmpages 22725 30387 255999744 255999744 0 shmpages 685 1981 128000 128000 0 dummy 0 0 0 0 0 numproc 34 57 999999 999999 0 physpages 4454 19347 0 2147483647 0 vmguarpages 0 0 128000 2147483647 0 oomguarpages 5947 19347 128000 2147483647 0 numtcpsock 67 144 7999992 7999992 0 numflock 3 16 999999 999999 0 numpty 1 1 500000 500000 0 numsiginfo 0 9 999999 999999 0 tcpsndbuf 622340 789288 104857600 286883840 0 tcprcvbuf 3575720 6756184 104857600 286883840 0 othersockbuf 8244 73424 104857600 286883840 0 dgramrcvbuf 0 8380 104857600 286883840 0 numothersock 13 36 7999992 7999992 0 dcachesize 0 0 2147483646 2147483646 0 numfile 1421 2019 23999976 23999976 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 18 18 999999 999999 0 |
3. Проверяем колонку failcnt. В данном случае вся колонка содержит нули (0). Но значения могут быть различны. Может быть 1, 2 и другие. По названиям колонок определяем в чем проблема. В основном (чаще всего) проблемы возникают из за того что ваш vds используем много памяти или больше памяти чем позволено, и процессы убиваются из за недостатка памяти для их работы.
Ниже приведена расшифровка каждого параметра:
numproc – Максимальное количество процессов и тредов (потоков).
numothersock – Максимальное количество TCP-сокетов.
vmguarpages – Гарантированный объем оперативной памяти, которая может быть запрошена стандартными механизмами резервирования памяти в Linux.
kmemsize – Память ядра — объем оперативной памяти, выделяемый для внутренних структур данных ядра, связанных с процессами виртуального сервера. Каждый процесс запрашивает как минимум 24 Кб таких данных. Средний процесс использует 30—60 Кб ядерной памяти. Большие процессы, такие как Apache и MySQL, могут использовать гораздо больше.
tcpsndbuf – Суммарный размер буферов, которых может быть использован для отправки данных через TCP-соединения.
tcprcvbuf – Суммарный размер буферов, которых может быть использован для приема данных через TCP-соединения.
othersockbuf – Суммарный размер буферов, которые могут быть использованы как для приема, так и для отправки данных через локальные сокеты, а также буферы, используемые для отправки данных по протоколу UDP.
dgrampages – Суммарный размер буферов, которые могут быть использованы для приема данных через UDP-соединения.
privvmpages – Объем оперативной памяти, которая может быть запрошена процессами виртуального
сервера системным вызовом malloc и другими стандартными механизмами резервирования памяти в Linux.
oomguarpages – Гарантированный объем оперативной памяти, превышение которого вызовет сигнал outof-memory.
lockedpages – Объем памяти, которая может быть заблокирована с помощью системного вызова mlock.
Этот объем включен в kmemsize.
shmpages – Общий объем разделяемой оперативной памяти (IPC). Этот параметр включен в privvmpages.
numfile – Максимальное количество открытых файлов.
numflock – Максимальное количество возможных блокировок файлов.
numpty – Максимальное количество псевдо-терминалов.
numsiginfo – Максимальное количество siginfo-структур. Размер структуры включен в kmemsize.
dcachesize – Объем памяти, необходимый для блокировки dentry- и inode-структур. Объем этой памяти включен в kmemsize.
numiptent – Максимальное количество записей в firewall (netfilter).