Войти первые 5 строк из верхнего вывода - сервер зависает
Может ли кто-нибудь дать совет, как записать первые 5 строк из верхнего вывода? Я думал о grep, но не знаю, как выбирать строки.
Мне нужно понять. Что иногда зависает на сервере. Может быть, есть какие-то инструменты для этого?
Спасибо;)
3 ответа
Вы можете сделать то, что вы просили:
~$ top -n1 | head -5
В дополнение к списку команд Janne и советам symcbean по проверке системных журналов, я бы предложил:
...
It shows the occupation of the most critical hardware
resources (from a performance point of view) on system level, i.e. cpu,
memory, disk and network.
It also shows which processes are responsible for the indicated load
with respect to cpu- and memory load on process level. Disk load is
shown if per process "storage accounting" is active in the kernel or if
the kernel patch `cnt' has been installed. Network load is only shown
per process if the kernel patch `cnt' has been installed...
[...]
Every interval (default: 10 seconds) information is shown about the
resource occupation on system level (cpu, memory, disks and network
layers), followed by a list of processes which have been active during
the last interval (note that all processes that were unchanged during
the last interval are not shown, unless the key 'a' has been pressed).
If the list of active processes does not entirely fit on the screen,
only the top of the list is shown (sorted in order of activity).
Кроме того, поверх вы можете проверить в обратном направлении, что было на вашем сервере, потому что он хранит эти данные в своих файлах журнала. Например, у меня есть следующий фрагмент кода в скрипте, который запускается, когда сервер loadavg превышает произвольный предел. Верхняя информация и другая связанная с ней системная информация отправляется по почте на мой счет:
atop -r /var/log/atop.log -M -b "$(date +'%H:%M' -d '30 minutes ago')" -e "$(date -d now +'%H:%M')"
В основном я получаю отчет о реальном состоянии сервера и о том, что происходило на нем в течение последних 30 минут (с подробной информацией о каждом 10-минутном интервале)
top | head -n 12 >>your_file.txt
будет делать это, но с оговорками: он сохранит все элементы управления и символы ANSI, так что просматривать вывод с less
и т. д. не было бы хорошо. И, честно говоря, не самый лучший способ поймать процесс повстанцев.
Для общих трендов производительности вашего сервера могут быть полезны такие инструменты, как snmp+mrtg, Cacti или Munin - они отображают загрузку процессора, использование памяти и так далее. Для использования в командной строке sysstat
пакет с его sadc
демон и sar
Утилита отчетов также может дать вам представление о том, как работает ваш сервер. psacct
Пакет добавляет учет BSD и может предоставить вам общую статистику о времени, затраченном на пользователя / процесс.
Для просмотра в режиме реального времени просто оставайтесь в системе на своем сервере и следуйте таким вещам, как iostat -x 1
, vmstat
а также top
,
Рассмотрите возможность настройки отдельного сервера системного журнала. Если у вас есть запасное оборудование (или уже установлен центральный сервер системного журнала), используйте его! Вы просто настраиваете свой сервер для отправки его системных журналов и других журналов на ваш сервер системного журнала. Иногда такие зависания (если они вызваны паникой ядра) могут произойти так, что ваш сервер не сможет записать информацию на диск, но сможет отправить свои последние слова на сервер системного журнала.
Протестируйте свой сервер с помощью memtest86, если вы можете перевести свой сервер в автономный режим на ночь или около того, дайте ему поработать memtest86
чтобы увидеть, имеет ли он неисправную RAM или что-то еще.
Извините, я не могу быть более полезным, чем вы, так как вы на самом деле не рассказали нам много о вашей проблеме.
Во-первых, маловероятно, что зависание сервера происходит из-за пользовательских процессов. Во-вторых, даже если бы это было так, почему это было бы одним из 5 лучших, вызывающих проблему?
Если вы уже проверили свои журналы и ничего не нашли, попробуйте реализовать сторожевой таймер для записи тактового импульса в журналы - и убедитесь, что система действительно зависает (в отличие от наблюдения за приостановкой при удаленном доступе).
Как долго длится заморозка? Как часто? Есть ли всплеск в грузе, когда он возвращается? Где вы наблюдаете эти заморозки? Это выделенная или виртуальная машина?