Поделиться через


Часть 3.2. Диспетчеры задач Linux, сверху и htop

Область применения: .NET в Linux

В этой статье описывается использование top и htop средства командной строки для мониторинга процессов.

Предварительные требования

Как и в предыдущих частях, эта часть структурирована, чтобы большее внимание уделяется теории и субъектам, которые следует следовать при начале устранения неполадок. У него нет необходимых компонентов. Однако вы должны иметь следующие элементы, которые уже настроены, если вы выполнили все действия этого обучения до сих пор:

  • Nginx имеет два веб-сайта:
    • Первый веб-сайт прослушивает запросы с помощью заголовка узла myfirstwebsite (http://myfirstwebsite), а также направляет запросы в демонстрационное приложение ASP.NET Core, прослушивающее порт 5000.
    • Второй веб-сайт прослушивает запросы с помощью заголовка узла buggyamb (http://buggyamb) и направляет запросы во второй ASP.NET пример приложения buggy Core, прослушивающего порт 5001.
  • Оба приложения ASP.NET Core выполняются как службы, которые автоматически перезапускаются при перезагрузке сервера, или приложения перестают отвечать на запросы или завершаются сбоем.
  • Локальный брандмауэр Linux включен и настроен для разрешения трафика SSH и HTTP.

Цель этой части

При устранении проблемы с производительностью может потребоваться отслеживать использование ЦП и памяти процесса, чтобы понять, как его потребление ресурсов развивается со временем. В Windows для этого можно использовать диспетчер задач. В Linux есть несколько средств, направленных на достижение одной и той же задачи.

В этой части рассматриваются средства командной top строки для htop мониторинга процессов.

популярное

Чтобы открыть эквивалент диспетчера задач в Linux, выполните top команду.

Снимок экрана: верхняя команда.

В этом примере вы можете наблюдать за первым перечисленным процессом для PID 19933, что процесс демонстрирует высокую загрузку ЦП, а использование памяти также высоко.

Выбор и отмена выбора столбцов

Чтобы добавить или удалить столбцы в представлении, которое top предоставляет средство, выберите F во время запуска средства. Столбцы, помеченные звездочкой (*), — это столбцы, выбранные для отображения. Используйте клавиши со стрелками, чтобы перемещаться по доступным столбцам и использовать пробел для выбора или отмены выбора столбцов. Затем нажмите клавишу ESC , чтобы выйти.

Снимок экрана: сведения о столбцах.

Изменения будут сохранены для учетной записи пользователя. При следующем запуске topвы увидите выбранные столбцы.

Фильтрация выходных данных пользователями

Чтобы иметь возможность ориентироваться на проблемные сценарии потребления ресурсов, важно знать, как фильтровать выходные top данные. Одним из наиболее распространенных методов является фильтрация процессов по имени пользователя. Вы можете выбрать U и ввести имя пользователя. На следующем снимке экрана показан top инструмент фильтрации доступных моментальных снимков процесса для пользователя www-data.

Снимок экрана: сведения о пользователях.

При нажатии клавиши ВВОД отображаются процессы, выполняемые заданным пользователем (в этом примере пользователь www-data).

Снимок экрана: сведения о пользователе.

При проверке выходных данных отфильтрованного top представления можно увидеть, что два процесса являются процессами .NET. Эти два процесса выполняют два приложения ASP.NET Core, а другие два процесса принадлежат Nginx.

Фильтры можно использовать при выполнении команды напрямую top . Например, если выполнить top -u www-data команду, она даст те же выходные данные, что и при открытии top средства и выбора U для фильтрации по пользователю.

Удаление процессов простоя

Выберите команду "Я " или выполните top -i команду, чтобы отфильтровать top выходные данные, чтобы отобразить только те процессы, которые используют ЦП. На следующем снимку экрана показаны выходные данные top -i -u www-data команды. Обратите внимание, что top выходные данные скрывают неактивные процессы, даже если существует четыре процесса, запущенные с помощью учетной записи пользователя www-data. Только процесс, имеющий PID=19933, потребляет ЦП.

Снимок экрана: удаление сведений.

Снова нажмите кнопку, чтобы переключить переключатель и отобразить процессы простоя.

Убийство процессов

Чтобы убить или завершить процесс, необходимо отправить сигнал об убийстве в процесс. Вы можете вспомнить, что мы использовали sudo kill -9 <PID> команду ранее для убийства процесса. Вы также можете убить процессы с помощью top. Выберите K , чтобы убить процесс во время top выполнения, а затем введите piD процесса, который требуется убить.

Снимок экрана: команда kill.

После нажатия кнопки ВВОДtop запрашивает тип сигнала. Нажмите клавишу ВВОД еще раз, чтобы отправить сигнал "завершить" (15/sigterm).

Снимок экрана: команда kill top.

Через несколько секунд вы увидите, что процесс для piD 122632 отсутствует в списке. Помните, что в списках процесс "122632" соответствует приложению BuggyAmb ASP.NET Core. Так как он был настроен автоматически, вы увидите, что новый процесс .NET с новым PID начинается после завершения работы.

htop

Htop — это средство просмотра процессов и приложение в текстовом режиме для мониторинга системы в режиме реального времени, аналогичное top. Это легко использовать, и он отображает полный список выполняемых процессов.

Это htop средство предварительно установлено в дистрибутиве Ubuntu Linux, который используется для установки виртуального сервера для этого курса. Если htop он не установлен в дистрибутиве Linux, вы можете использовать диспетчеры пакетов в Linux для его установки. (См. раздел Часть 1.3. Установка .NET в Linux для получения дополнительных сведений.)

Чтобы запустить средство, выполните htop команду. Вы увидите цветные выходные данные, похожие на следующий:

Снимок экрана: команда kill htop.

Примечание.

В нижней строке указаны ключи функций, которые можно использовать. Выберите F6 , чтобы отсортировать по разным параметрам, используйте клавиши со стрелками, чтобы выбрать PERCENT_MEM столбец, а затем нажмите клавишу ВВОД. Это сортирует процессы по использованию памяти.

Снимок экрана: использование памяти.

Как и в top случае с командой, можно использовать сочетания клавиш для нескольких функций. Например, выберите U , чтобы выбрать имя пользователя из списка.

Снимок экрана: сведения о имени пользователя.

Однако в выходных htop данных есть что-то запутанное. На основе выходных данных последних примеров следует ожидать, что для пользователя www-data будут отображаться четыре процесса. Однако мы видим, что есть много других записей. Что может привести к этому поведению?

Разница в выходных данных возникает, так как htop по умолчанию отображаются как процессы, так и их потоки. Если вы не хотите видеть потоки, рекомендуется всегда отключать представление потоков, чтобы сделать выходные данные более понятными. Чтобы отключить представление потоков и просмотреть только процессы, выберите SHIFT+H. На следующем снимке экрана показаны процессы без потоков.

Снимок экрана: сведения о процессе.

Если необходимо убить процесс, выберите процесс с помощью клавиш со стрелками, выберите F9 и нажмите клавишу ВВОД , чтобы отправить сигнал "завершить".

Снимок экрана: сведения о завершении.

В этом кратком обзоре следует понять, какие процессы выполняются и потребляют ресурсы в системе. Чтобы выйтиhtop, выберите F10 или CTRL+C.

Следующие шаги

В следующей части этой серии (часть 3.3 — отладчики, основные дампы и сбор основных дампов) обсуждаются отладчики и файлы дампа.