Я не могу получить доступ к своему VPS (Centos7) примерно через 1 день, если я не перезагружаю сервер
У меня есть CentOS 7 VPS с установленными Webmin и Virtualmin. У меня есть несколько доменов на этом сервере, а также почтовый сервер (Postfix, Dovecot). Иногда я не могу получить к нему доступ (либо через webmin, используя IP-адрес, либо по SSH), пока я не перезагружу машину с панели своего провайдера. Как я могу обнаружить проблему? Какие журналы я должен посмотреть?
Вот вывод для "grep -i 'убитый процесс' /var/log/messages"
Oct 2 13:08:32 server kernel: Killed process 2840 (mysqld) total-vm:1641792kB, anon-rss:20564kB, file-rss:0kB
Oct 3 04:24:09 server kernel: Killed process 2874 (mysqld) total-vm:1637124kB, anon-rss:11628kB, file-rss:0kB
Oct 3 05:16:05 server kernel: Killed process 26933 (sh) total-vm:11636kB, anon-rss:4kB, file-rss:140kB
Oct 3 05:16:05 server kernel: Killed process 26884 (/usr/libexec/we) total-vm:165912kB, anon-rss:28kB, file-rss:132kB
Oct 3 05:16:05 server kernel: Killed process 26753 (/usr/libexec/we) total-vm:161776kB, anon-rss:80kB, file-rss:16kB
Oct 3 05:16:05 server kernel: Killed process 26852 (/usr/libexec/we) total-vm:132660kB, anon-rss:2476kB, file-rss:12kB
Oct 3 05:16:05 server kernel: Killed process 26903 (/usr/libexec/we) total-vm:132656kB, anon-rss:1964kB, file-rss:12kB
Oct 3 05:16:05 server kernel: Killed process 26715 (php-cgi) total-vm:486184kB, anon-rss:5772kB, file-rss:136kB
Oct 3 05:16:05 server kernel: Killed process 26953 (sh) total-vm:11636kB, anon-rss:0kB, file-rss:4kB
Oct 3 05:16:05 server kernel: Killed process 26749 (/usr/libexec/we) total-vm:113144kB, anon-rss:1444kB, file-rss:148kB
Oct 3 05:16:05 server kernel: Killed process 26954 (sh) total-vm:11636kB, anon-rss:4kB, file-rss:0kB
Oct 3 05:16:05 server kernel: Killed process 26795 (/usr/libexec/we) total-vm:113144kB, anon-rss:1132kB, file-rss:0kB
Oct 3 05:16:05 server kernel: Killed process 27303 (mysqld) total-vm:288396kB, anon-rss:9340kB, file-rss:0kB
Oct 3 05:16:05 server kernel: Killed process 27109 (php-cgi) total-vm:453836kB, anon-rss:2144kB, file-rss:20488kB
Oct 3 05:16:05 server kernel: Killed process 27111 (php-cgi) total-vm:453836kB, anon-rss:2308kB, file-rss:20000kB
Oct 3 05:16:05 server kernel: Killed process 26851 (/usr/libexec/we) total-vm:105188kB, anon-rss:2620kB, file-rss:4kB
Oct 3 05:16:05 server kernel: Killed process 26898 (/usr/libexec/we) total-vm:105188kB, anon-rss:2660kB, file-rss:44kB
Oct 3 05:34:26 server kernel: Killed process 27190 (php-cgi) total-vm:453836kB, anon-rss:2160kB, file-rss:20624kB
Oct 3 05:57:53 server kernel: Killed process 27186 (php-cgi) total-vm:453836kB, anon-rss:2324kB, file-rss:20280kB
Oct 3 06:00:46 server kernel: Killed process 27180 (php-cgi) total-vm:453836kB, anon-rss:2520kB, file-rss:20312kB
Oct 3 06:02:00 server kernel: Killed process 27187 (php-cgi) total-vm:453836kB, anon-rss:2240kB, file-rss:20076kB
Oct 3 06:04:16 server kernel: Killed process 2889 (named) total-vm:245060kB, anon-rss:512kB, file-rss:0kB
Oct 3 06:11:19 server kernel: Killed process 26709 (php-cgi) total-vm:471000kB, anon-rss:2228kB, file-rss:380kB
Oct 3 06:12:28 server kernel: Killed process 27308 (/usr/libexec/we) total-vm:96044kB, anon-rss:6292kB, file-rss:528kB
Oct 3 06:12:48 server kernel: Killed process 26788 (php-cgi) total-vm:464152kB, anon-rss:1852kB, file-rss:908kB
Oct 3 06:57:17 server kernel: Killed process 27465 (/usr/libexec/we) total-vm:102616kB, anon-rss:5608kB, file-rss:360kB
Oct 3 07:32:00 server kernel: Killed process 27457 (/usr/libexec/we) total-vm:102620kB, anon-rss:5080kB, file-rss:380kB
Oct 3 07:55:06 server kernel: Killed process 27474 (/usr/libexec/we) total-vm:102616kB, anon-rss:5156kB, file-rss:180kB
3 ответа
В дополнение к sar вы можете установить поверх него и настроить журналы, чтобы найти точный процесс, ответственный за высокую загрузку ЦП / ОЗУ.
Кажется, у вас утечка памяти. В первую очередь проверьте ваши логи.
grep -i 'killed process' /var/log/messages
Тогда вы можете попробовать этот трюк, чтобы узнать, какой процесс съедает вашу память. Добавьте эту команду как задачу crontab:
ps aux | awk '{mem[$11]+=int($6/1024)}; {cpuper[$11]+=$3};{memper[$11]+=$4}; END {for (i in mem) {print cpuper[i]"% ",memper[i]"% ",mem[i]" MB ",i}}' | sort -k3nr | head -n 5 >> /tmp/memoryleak.log
Теперь вы можете проверить /var/log/memoryleak.log
Сначала проверьте занятие памяти. Может произойти утечка некоторых служб, поэтому со временем потребление памяти может возрасти.
Если у вас нет sar на месте, отрегулируйте его. Есть довольно хорошая инструкция:
http://www.thegeekstuff.com/2011/03/sar-examples/?utm_source=feedburner