У меня есть 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.