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

записать первые 5 строк из верхнего вывода - сервер зависает

Может ли кто-нибудь дать совет о том, как регистрировать первые 5 строк из верхнего вывода? Я думал о grep, но не знаю, как выбирать строки.

Мне нужно понять. Что иногда тормозит сервер. Может есть какие-то инструменты для этого?

Спасибо ;)

Вы можете сделать то, что просили:

~$ top -n1 | head -5

В дополнение к списку команд Янне и советам 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).

Также с помощью atop вы можете проверить назад во времени, что было на вашем сервере, потому что он хранит эти данные в своих файлах журнала. Например, у меня есть следующий фрагмент кода в сценарии, который запускается, когда сервер 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 чтобы узнать, есть ли у него неисправная оперативная память или что-то еще.

Извините, я не могу быть более полезным, чем этот, поскольку вы на самом деле мало что рассказали нам о своей проблеме.