- How can I determine the current CPU utilization from the shell? [closed]
- 7 Answers 7
- Загрузка ЦПУ в Linux — насколько варит ваш котелок
- Методы проверки
- Проверяем загрузку процессора с помощью команды top
- Немного более модный способ: htop
- Прочие способы проверки степени загрузки ЦПУ
- Как настроить оповещения о слишком высокой нагрузке на процессор
- Заключение
- How/Where do I check my ubuntu laptops’s CPU usage?
- 3 Answers 3
- HTOP
How can I determine the current CPU utilization from the shell? [closed]
How can I determine the current CPU utilization from the shell in Linux? For example, I get the load average like so:
Just FYI, the load average is not the CPU usage although it may indirectly show the CPU usage. It’s a number showing how many processes are out there running but waiting for resources, be it CPU or disk or something else.
can’t answer the question cause it’s closed but have a look at vmstat , as a bonus it works on BSDs as well.
7 Answers 7
Linux does not have any system variables that give the current CPU utilization. Instead, you have to read /proc/stat several times: each column in the cpu(n) lines gives the total CPU time, and you have to take subsequent readings of it to get percentages. See this document to find out what the various columns mean.
Because Space’s answer doesn’t work. It returns the average CPU usage since process start and not the current CPU usage. This answer is the correct one.
You can use top or ps commands to check the CPU usage.
using top : This will show you the cpu stats
using ps: This will show you the % cpu usage for each process.
ps -eo pcpu,pid,user,args | sort -r -k1 | less
Also, you can write a small script in bash or perl to read /proc/stat and calculate the CPU usage.
We tried, and «top -b -n 1» gives very inaccurate results. «top»‘s first iteration is very approximative, can give 10 percent instead of 60.
top’s calculation of %CPU is different from ps’s calc of %CPU. see this answer unix.stackexchange.com/questions/58539/…
The command uptime gives you load averages for the past 1, 5, and 15 minutes.
Unfortunately I need it to exit right away so I can parse the output. I’m hoping there is a file in /proc that I can read.
This will be something like this:
cpu 55366 271 17283 75381807 22953 13468 94542 0 cpu0 3374 0 2187 9462432 1393 2 665 0 cpu1 2074 12 1314 9459589 841 2 43 0 cpu2 1664 0 1109 9447191 666 1 571 0 cpu3 864 0 716 9429250 387 2 118 0 cpu4 27667 110 5553 9358851 13900 2598 21784 0 cpu5 16625 146 2861 9388654 4556 4026 24979 0 cpu6 1790 0 1836 9436782 480 3307 19623 0 cpu7 1306 0 1702 9399053 726 3529 26756 0 intr 4421041070 559 10 0 4 5 0 0 0 26 0 0 0 111 0 129692 0 0 0 0 0 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 369 91027 1580921706 1277926101 570026630 991666971 0 277768 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 8097121 btime 1251365089 processes 63692 procs_running 2 procs_blocked 0
Загрузка ЦПУ в Linux — насколько варит ваш котелок
Понимать состояние ваших серверов с точки зрения их загрузки и производительности — крайне важная задача. В этой статье мы опишем несколько самых популярных методов для проверки и мониторинга загрузки ЦПУ на Linux хосте.
Методы проверки
Проверяем загрузку процессора с помощью команды top
Отличным способом проверки загрузки является команда top. Вывод этой команды выглядит достаточно сложным, зато если вы в нем разберетесь, то точно сможете понять какие процессы занимают большую часть ваших вычислительных мощностей.
Команда состоит всего из трех букв: top
У вас откроется окно в терминале, которое будет отображать запущенные сервисы в реальном времени, долю системных ресурсов, которую эти сервисы потребляют, общую сводку по загрузке CPU и т.д
Будем идти по порядку: первая строчка отображает системное время, аптайм, количество активных пользовательских сессий и среднюю загруженность системы. Средняя загруженность для нас особенно важна, т.к дает понимание о среднем проценте утилизации ресурсов за некоторые промежутки времени.
Три числа показывают среднюю загрузку: за 1, 5 и 15 минут соответственно. Считайте, что эти числа — это процентная загрузка, т.е 0.2 означает 20%, а 1.00 — стопроцентную загрузку. Это звучит и выглядит достаточно логично, но иногда там могут проскакивать странные значения — вроде 2.50. Это происходит из-за того, что этот показатель не прямое значение загрузки процессора, а нечто вроде общего количества «работы», которое ваша система пытается выполнить. К примеру, значение 2.50 означает, что текущая загрузка равна 250% и ваша система на 150% перегружена.
Вторая строчка достаточна понятна и просто показывает количество задач, запущенных в системе и их текущий статус.
Третья строчка позволит вам отследить загрузку ЦПУ с подробной статистикой. Но здесь нужно сделать некоторые комментарии:
- us: процент времени, когда ЦПУ был загружен и которое было затрачено на user space (созданные/запущенные пользователем процессы)
- sy: процент времени, когда ЦПУ был загружен и которое было затрачено на на kernel (системные процессы)
- ni: процент времени, когда ЦПУ был загружен и которое было затрачено на приоритезированные пользовательские процессы (системные процессы)
- id: процент времени, когда ЦПУ не был загружен
- wa: процент времени, когда ЦПУ ожидал отклика от устройств ввода — вывода (к примеру, ожидание завершения записи информации на диск)
- hi: процент времени, когда ЦПУ получал аппаратные прерывания (например, от сетевого адаптера)
- si: процент времени, когда ЦПУ получал программные прерывания (например, от какого-то приложения адаптера)
- st: сколько процентов было «украдено» виртуальной машиной — в случае, если гипервизору понадобилось увеличить собственные ресурсы
Следующие две строчки показывают сколько занято/свободно оперативно памяти и файла подкачки, и не так релевантны относительно задачи проверки нагрузки на процессор. Под информацией о памяти вы увидите список процессов и процент ЦПУ, который они тратят.
Также вы можете нажимать на кнопку t, чтобы прокручивать между различными вариантами вывода информации и использовать кнопку q для выхода из top
Немного более модный способ: htop
Существует более удобная утилита под названием htop, которая предоставляет достаточно удобный интерфейс с красивым форматированием. Установка утилиты экстремально проста:
Для Ubuntu и Debian:
Для CentOS и Red Hat:
После установки просто введите команду ниже:
Как видно на скриншоте, htop гораздо лучше подходит для простой проверки степени загрузки процессора. Выход также осуществляется кнопкой q
Прочие способы проверки степени загрузки ЦПУ
Есть еще несколько полезных утилит, и одна из них (а точнее целый набор) называется sysstat.
Установка для Ubuntu и Debian:
sudo apt-get install sysstat
Установка для CentOS и Red Hat:
Как только вы установите systat, вы сможете выполнить команду mpstat — опять же, практически тот же вывод, что и у top, но в гораздо лаконичнее.
Следующая утилита в этом пакете это sar. Она наиболее полезна, если вы ее вводите вместе с каким-нибудь числом, например 6. Это определяет временной интервал, через который команда sar будет выводить информацию о загрузке ЦПУ.
К примеру, проверяем загрузку ЦПУ каждые 6 секунд:
Если же вы хотите остановить вывод после нескольких итераций, например 10, добавьте еще одно число:
Так вы также увидите средние значения за 10 выводов.
Как настроить оповещения о слишком высокой нагрузке на процессор
Одним из самых правильных способов является написание простого bash скрипта, который будет отправлять вам алерты о слишком высокой степени утилизации системных ресурсов.
#!/bin/bash CPU=$(sar 1 5 | grep "Average" | sed 's/^.* //') CPU=$( printf "%.0f" $CPU ) if [ "$CPU" -lt 20 ] then echo "CPU usage is high!" | sendmail admin@example.com fi
Скрипт будет использовать обработчик sed и среднюю загрузку от команды sar. Как только нагрузка на сервер будет превышать 85%, администратор будет получать письмо на электронную почту. Соответственно, значения в скрипте можно изменить под ваши требования — к примеру поменять тайминги, выводить алерт в консоль, отправлять оповещения в лог и т.д.
Естественно, для выполнения этого скрипта нужно будет запустить его по крону:
Для ежеминутного запуска введите:
Заключение
Соответственно, лучшим способом будет комбинировать эти способы — например использовать htop при отладке и экспериментах, а для постоянного контроля держать запущенным скрипт.
How/Where do I check my ubuntu laptops’s CPU usage?
Additionally, try out this page for more information. This is very comprehensive and surely answers a lot of queries, although I personally feel using system monitor is the best solution.
3 Answers 3
HTOP
is a lightweight text-mode process viewer packed with handy features such as killing processes without entering their PID, displaying full command lines, etc with a colour display
How to install
open your Terminal ( Ctrl — Alt — T ) and Type
To run: type htop This will show what you are asking. .
Why is this the accepted answer when an earlier answer provided a faster builtin solution? This answers questions that weren’t even asked.
@deanresin I completely agree with you. But if you know how to use htop then you will know how to monitor each CPU core performance. Thank you.
In your dash i.e. pressing super key search for system monitor application.
If you are comfortable with command line there are tools like top and htop where cpu usage can be viewed as well.
gnome-system-monitor is not installed by default on Ubuntu 18.04 anymore for some reason, you need sudo apt install gnome-system-monitor first: releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.manifest
As said in previous answer you can use system monitor which is the best tool. If you want more information you can try some commands on terminal
top — its a command to see all the processes and their CPU usage. Just read the screen carefully and you would find lot of other useful information there. you can press Ctrl + c to close it.
Or you can also try cat /proc/cpuinfo — for other information about cpu