Назад | Перейти на главную страницу

Удаленный сервер зависает, зависает. Как отлаживать?

У меня есть vps, работающий на VmWare ESX с Ubuntu 8.04 LTS. Последние 3 месяца он работает без сбоев, однако недавно мы заметили две странные ошибки.

а. Сервер висит, сегодня был второй раз. Характер зависания очень странный. Я могу пинговать сервер-сервер, он отправляет ответ нормально. Однако все другие службы, такие как sshd, apache, mysql и т. Д., Вообще не отвечают. При работе

telnet servername 22
Escape character is '^]'.
SSH-2.0-OpenSSH_5.X Debian-5ubuntu1

И другие веб-службы будут работать нормально. Когда он завис, я могу устанавливать TCP-соединения как с 22, так и с 80, но не получаю никакого ответа.

telnet servername 22
Escape character is '^]'.

Как я могу отладить эту проблему? Могу ли я запустить какие-нибудь демоны, которые будут периодически регистрировать статус? Скажите, пожалуйста, как это сделать.

б. Еще одна странная проблема заключается в том, что в последнее время я не могу передавать файлы размером более 100 КБ, файлы меньшего размера размером около 1-2 КБ работают.

scp anotherserver:filename .

или

wget http://www.example.com/file

застрял бы. Осталось около 6 ГБ свободного места, поэтому я не думаю, что это проблема. Любые указатели, куда я должен заглянуть?

Я бы предложил использовать sar из sysstat (или atsar) пакет. Это выполняется каждые 10 минут как задание cron и записывает жизненно важную статистику вашего сервера - использование памяти, использование процессора, активность диска, сетевую активность и т. Д.

Вы используете это так:

Показать активность процессора (по умолчанию)
sar -p (или просто sar)

Показать статистику памяти ("баран")
sar -r

Покажи статистику памяти с 27 числа
sar -r -f /var/log/sysstat/sa27

Обратите внимание, что путь зависит от вашей установки. В системах на основе redhat файлы обычно находятся в /var/log/sa/, а если у вас есть atsar пакет установлен, они будут в /var/log/atsar/ - но закономерность заключается в том, что файл заканчивается числом, представляющим день месяца, когда были собраны данные.

Некоторые версии (например, atsar) позволяют просто указать день: sar -n 27. Проверьте справочную страницу, прилагаемую к вашей установке, чтобы узнать правильный синтаксис и данные, которые вы можете получить.

После того, как вы его установили и запустили (а вы, вероятно, уже сделали это!), Вы можете использовать собранную информацию, чтобы получить представление о том, что происходило непосредственно перед сбоем. Например, если отчет показывает, что ваша память исчерпана, а свободное пространство подкачки отсчитывается до нуля, тогда у вас будет довольно хорошее представление о том, что искать.

Имея под рукой информацию, вы можете настроить дополнительные отчеты, чтобы лучше понять, что не так: например, вы можете написать короткий сценарий bash, который проверяет определенную системную статистику (например, содержимое /proc/meminfo или /proc/loadavg), и если условия триггера выполнены, возможно, добавляется соответствующая отладочная информация (например, вывод ps auwwxf) в файл или отправит вам информацию по электронной почте.

Убедитесь, что у вас нет сетевых ошибок (отслеживайте сервер ESX с помощью SNMP или WMI / CIM / WBEM). Установите / переустановите VMware Tools. Проверьте, нет ли у вас проблем с хранением. Если виртуальная машина не отвечает, можно ли использовать консоль виртуальной машины? Убедитесь, что виртуальные машины не меняются местами в интерфейсе ESX.