Все мои веб-сайты на моем сервере работают очень медленно или вообще не загружаются. Даже администратор сервера (Plesk) несколько раз не загружается.
За последние несколько месяцев на сайтах не было изменений.
Как я могу увидеть, какие процессы замедляют работу моего сервера?
Моя среда выглядит так:
Сервер: VPS под управлением Linux 2.8.x
ОС: Centos 5
Интерфейс управления: Plesk 9.x
Память: 1024 МБ
Процессор: 2,2 ГГц
Мои сайты работают на PHP и MySQL.
Наконец-то мне удалось подключиться к моему серверу через Telnet (Putty + SSH). Бег top
не отображалось никаких процессов, использующих более 2% ЦП, и ни один из них не использовал избыточную память.
Я также попросил друга установить программу, которая проверяет файлы ядра, и все выглядело нормально.
Так что я склоняюсь к проблемам с сетью или какой-либо другой неисправности сервера. Но я не могу понять, что может быть не так.
Вот несколько ответов Шону Кимбаллу:
Prefork выглядит так
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
Где я могу узнать среднюю нагрузку?
Telnet отключен, и мне нужно авторизоваться по SSH :)
Вы можете увидеть свою среднюю нагрузку uptime
.
Поскольку ваш сервер является VPS, мощность процессора может не полностью принадлежать вам, и действия других пользователей (которые используют то же оборудование, что и ваш VPS) могут влиять на ваш сервер. Я испытал это на собственном опыте.
Еще один чек может стоить iotop
.
Не могли бы вы рассказать нам немного больше о своей среде - ram, cpu, это виртуальная машина, версия plesk ... и т. Д. Кроме того, только Apache работает медленно, mail, ftp, dns и т. Д. Все в порядке?
Вы изменили конфигурацию apache? конкретно эта часть:
<IfModule prefork.c>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 200
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>
DNS, он работает? ваши экспедиторы отвечают на запросы.
Наконец, не связанного с вашей проблемой, включите SSH и выключите telnet - ради бога, пожалуйста!
если вы не можете подключиться к нему удаленно, вы можете войти через консоль? top
поможет, даст отсортированные процессы по процессору, нажатие M, когда внутри top будет сортировать по максимальному использованию памяти.
Результат выглядит как
Не знаю, есть ли в Plesk утилита для мониторинга. Вы можете установить программное обеспечение для мониторинга с веб-интерфейсом.
http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems
Предоставляет ли Plesk какую-либо информацию о производительности / статусе?
Если вы все еще можете загружать файлы на свой веб-сервер, вы можете попробовать загрузить файл, который будет выполнять команды оболочки и отображать вывод.
Например, вы можете попробовать это:
<?php
exec('TERM=xterm /usr/bin/top n 1 b i', $top, $error );
echo nl2br(implode("\n",$top));
if ($error){
exec('TERM=xterm /usr/bin/top n 1 b 2>&1', $error );
echo "Error: ";
exit($error[0]);
}
?>
Поскольку он запускается от имени пользователя веб-сервера, вы не увидите полный список процессов, но сможете увидеть некоторую системную информацию (использование ЦП, памяти и подкачки, загрузка и т. Д.). Это может дать вам дополнительную информацию о проблеме.