Как я нахожу процесс с самой высокой загрузкой?

У меня есть одноядерный VPS со средним числом загрузки, которое идет вне 25 время от времени. Когда это достигает этого, это становится невыносимо медленным, и даже управляет, пробегает dash, который быстрее и использует меньше RAM, чем bash, требует времени к выполненному. Как я могу разыскать, какой процесс вызывает высокую загрузку?

10
задан 5 November 2017 в 21:32

4 ответа

Можно установить htop. Хорошая вещь о htop это, это покажет Вам Ваше использование на ЦП, а также график значимого текста Вашей памяти и подкачает право использования наверху.

Устанавливать htop:

sudo apt-get install htop

Запустите его:

htop

enter image description here

Пресса F6 для сортировки процессов затем с помощью клавиши навигации, можно выбрать PERCENT_CPU и нажмите Enter.

enter image description here

Или можно использовать top таким образом (источник):

top -b -n 1 | head -n 12
16
ответ дан 23 November 2019 в 04:18

Ниже просто украден от Unix. SE: Найдите процесс, который берет максимальное использование ЦП, если использование ЦП составляет больше чем 60%?, хотя, конечно, адаптированный к этому вопросу.

перечислите процессы определенным использованием ЦП

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

Это дает список процессов, которые имеют использование ЦП >0.0%, можно изменить это значение согласно потребностям, например. >50.0. Каждая строка содержит использование ЦП в проценте, PID и файле процесса.

перечислите процессы с большей частью использования ЦП

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

Это показывает лучшие 5 (NR<=5) процессы, в настоящее время вызывающие большую часть загрузки ЦП.

10
ответ дан 23 November 2019 в 04:18

Вчера я учился awk и я играл с другими двумя ответами. Вот результат:

  • Получите только процесс с самым более высоким использованием ЦП, с помощью ps aux:

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • Получите три процесса с самым более высоким использованием ЦП, с помощью top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Получите три процесса с самым более высоким использованием ЦП, с помощью ps aux:

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

Я попытался выполнить последние две команды одновременно (с <command>; wait; <command> и <command> & <command> &), но затем я понял, что это не возможно вообще :)


Ссылки:

1
ответ дан 23 November 2019 в 04:18

Использовать top команда

top - отобразите процессы Linux

Главная программа обеспечивает динамическое представление в реальном времени рабочей системы. Это может отобразить системную информацию о сводке, а также список процессов или потоков, в настоящее время управляемых ядром Linux. Типы системной показанной информации о сводке и типы, порядок и размер информации, отображенной для процессов, являются всем настраивающимся пользователем, и та конфигурация может быть сделана персистентной через перезапуски.

источник

хорошее учебное руководство YouTube

1
ответ дан 23 November 2019 в 04:18

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

Похожие вопросы: