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


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.