Войти первые 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 лучших, вызывающих проблему?

Если вы уже проверили свои журналы и ничего не нашли, попробуйте реализовать сторожевой таймер для записи тактового импульса в журналы - и убедитесь, что система действительно зависает (в отличие от наблюдения за приостановкой при удаленном доступе).

Как долго длится заморозка? Как часто? Есть ли всплеск в грузе, когда он возвращается? Где вы наблюдаете эти заморозки? Это выделенная или виртуальная машина?

Другие вопросы по тегам