Як знайти процес з найбільшим навантаженням?


10

У мене є одноядерний VPS із середнім навантаженням, яке часом перевищує 25. Досягаючи цього, він стає нестерпно повільним, і навіть команди пробігаються dash, що швидше і використовує менше оперативної пам'яті, ніж bashпотрібно, щоб запустити деякий час. Як я можу відстежити, який процес викликає велике навантаження?


2
sudo apt install htopнадає корисний інструмент для текстового режиму для цієї мети (більш зручний для користувачів, ніж стандартний top). Але topце добре, якщо ви хочете невеликий відбиток ніг.
sudodus

2
Довжина черги завантаження вказує, скільки процесів готові до використання процесора. Це не обов'язково може бути єдиним процесом, що викликає проблему.
Thorbjørn Ravn Andersen

Відповіді:


16

Ви можете встановити htop. Хороша річ у htopтому, що він покаже вам ваше використання на один процесор, а також значущий текстовий графік вашої пам’яті та обмін використанням праворуч вгорі.

Щоб встановити htop:

sudo apt-get install htop

Почніть це:

htop

введіть тут опис зображення

Натисніть F6для сортування процесів, потім за допомогою навігаційної клавіші ви можете обрати PERCENT_CPUі натисніть клавішу Enter.

введіть тут опис зображення

Або ви можете використовувати topтаким чином ( джерело ):

top -b -n 1 | head -n 12

2
Як ярлик, ви можете використовувати Pдля сортування за використанням процесора, Mпам'яті або Tза часом та tповернутися до дерева.
дельтаб

Цікаво, що htopє якась основна підтримка миші. Якщо ви натиснете на стовпці, це дозволить вам також сортувати їх (якщо я не помиляюся). Є деякі інші операції, які працюють з вашою мишкою.
Ісмаїл Мігель

11

Нижче лише викрадено з Unix.SE: Знайдіть процес, який займає максимальне використання процесора, якщо використання процесора перевищує 60%? , хоча, звичайно, адаптувався до цього питання.

перерахуйте процеси за конкретним використанням процесора

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

Це дає перелік процесів, які використовують >0.0% CPU , ви можете змінити це значення відповідно до своїх потреб, наприклад >50.0. Кожен рядок містить використання процесора у відсотках, PID та файл процесу.

перерахуйте процеси з найбільшим використанням процесора

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

Це показує топ-5 ( NR<=5) процесів, що викликають найбільше завантаження процесора.


1

Вчора я вчився, awkі я грав з двома іншими відповідями. Ось результат:

  • Отримайте лише процес із найвищим використанням CPU, використовуючи 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}'
    
  • Отримайте три процеси з найбільш високим використанням CPU, використовуючи top:

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

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

Я намагався запускати дві останні команди одночасно (з <command>; wait; <command>і <command> & <command> &), але потім зрозумів, що це взагалі неможливо :)


Список літератури:


Останній не показує процес із найбільшим використанням процесора, але починається з другого, ви, мабуть, мали на увазі саме NR>=2там, - виявляється, psнадається опція, hяка опускає рядок заголовка, дивіться мою оновлену відповідь.
десерт

@dessert, ви праві, раніше це було NR>=2, але NR>1коротко :) Я оновив відповідь.
pa4080

1

Використовувати topкоманду

top- відображення процесів Linux

Верхня програма забезпечує динамічний перегляд працюючої системи в реальному часі. Він може відображати підсумкову інформацію про систему, а також список процесів або потоків, якими зараз керує ядро ​​Linux. Показані типи підсумкової інформації системи та типи, порядок та розмір інформації, що відображається для процесів, настроюються користувачем, і ця конфігурація може бути стійкою протягом перезапуску.

джерело

хороший підручник з YouTube

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.