- 8 Ways to Check CPU Clock Speed on Linux
- 1. Using lscpu
- 2. Using Dmesg
- 3. From /proc/cpuinfo file
- 4. Using i7z
- 5. Using hwinfo
- 6. Using auto-cpufreq
- 7. Using dmidecode
- 8. Using Inxi script
- Conclusion
- Практические рекомендации: устраняйте неполадки, используя команду ‘Top’ в Linux
- How Do I Find Out Linux CPU Utilization?
- The old good top command to find out Linux CPU Utilization
- Top command to find out Linux cpu usage
- Say hello to htop
- Find Linux CPU utilization using mpstat and other tools
- Display the utilization of each CPU individually using mpstat
- Report CPU utilization using the sar command
- Comparison of CPU utilization
- Task: Find out who is monopolizing or eating the CPUs
- iostat command
- vmstat command
- How to interpret vmstat CPU section output
- turbostat command
- nmon command
- GUI tools for your laptops/desktops
- Conclusion
8 Ways to Check CPU Clock Speed on Linux
CPU clock speed determines how fast your CPU can process instructions every second. It measures the number of cycles your CPU can execute, measured in GHz or Mhz. As it is hard to increase clock speed beyond a limit, multi-core processors have been introduced.
In Linux to check CPU speed, you have to get processor details and there are different tools available to fetch CPU information.
1. Using lscpu
Lscpu is a command used in Linux to display information about the CPU architecture. This command is a part of util-linux package.
Run lscpu command and the ‘CPU MHz’ field shows the CPU speed:
2. Using Dmesg
Dmesg is a command used in Linux to display messages from the kernel ring buffer and dumped to /var/log/messages.
We can filter Dmesg output using grep command, to find cpu speed:
3. From /proc/cpuinfo file
The /proc/cpuinfo system file gives the individual speed for each CPU Core.system.
4. Using i7z
The i7z is a dedicated tool for intel i3, i5, and i7 based CPUs to display processor states.
Run ‘sudo i7z’ command to gives the following output:
5. Using hwinfo
Hwinfo command is used in Linux to print detailed information about each hardware device.
Run the following command to get CPU speed:
$ sudo hwinfo —cpu
The following snapshot shows the output of the above command.
6. Using auto-cpufreq
Auto-cpufreq is a modern tool to automatically optimize CPU speed & power on the Linux platform. It actively monitors the laptop’s battery state, CPU usage, and system load for CPU speed and power optimization.
7. Using dmidecode
Dmidecode is a command used in Linux to gives detailed information about the system’s hardware components such as Processor, DIMMs, BIOS, etc in a human-readable format.
To print cpu speed, run:
8. Using Inxi script
Inxi is a featured rich and powerful script to print the system’s hardware information in Linux.
Run inxi command with ‘-C’ option to print the processor related information:
Conclusion
In this article, we explored different commands to get the CPU speed information on Linux OS. Please provide your feedback in the below comment section.
Источник
Практические рекомендации: устраняйте неполадки, используя команду ‘Top’ в Linux
Вывод команды «top»
Если в коммандной строке линукс системы вы наберете команду top, то получите табличку со следующим заголовком:
Давайте разберем значение каждой из строк.
top – 17:15:19 up 32 days, 18:24, 6 users
Здесь показана команда и текущее системное время; «время бесперебойной работы», в нашем случае это 32 дня, 18 часов и 24 минуты; наконец, указывается количество зарегистрированных в системе пользователей; в данном примере, в системе зарегистрированы 6 пользователей. Они могут быть подключены по SSH, локально, быть неактивными и т.д.
load average: 0,00, 0,01, 0,05
В этой части показывается средняя нагрузка; она может сбивать с толку, особенно на виртуальной машине/в облаке.
Первая цифра показывает среднюю нагрузку «последней минуты», или «текущую» среднюю нагрузку; вторая цифра показывает «среднюю нагрузку за 5 минут», последняя цифра – «среднюю нагрузку за 15 минут».
Средняя нагрузка – мера среднего числа процессов, ожидающих своей очереди, чтобы совершить какое-либо действие в процессоре. Как и в супермаркете, приходится стоять в очереди, дожидаясь, пока кассир уделит вам все свое внимание. Причина, по которой средняя нагрузка растет, заключается в остальной статистике и счетчиках, находящихся ниже этой линии, поэтому, если ориентироваться строго на значения средней нагрузки, можно не увидеть всей картинки полностью.
Вот пример, взятый из узла distcc:
Данный сервер, кроме того, что является средой промежуточной обработки для скриптов и хостингом инструментов командной строки облака, предоставляет также распределенную службу C компилятора различным машинам, находящимся в нашей сети, поскольку она имеет 8 процессоров, 32 ГБ оперативной памяти и тонну псевдодискового пространства. При нормальной нагрузке, среднее ее значение остается относительно низким; при выполнении java-скриптов нагрузка может вырастать в два и более раза. Однако при выполнении службы компилятора при полной нагрузке (10 выполняемых процессов при загрузке процессора, равной 95% или выше), среднее значение нагрузки составляет 0,75… Как же так получается? Попытаемся разобраться
Строка Tasks
1.
• sleeping Количество ждущих процессов показывает, какие процессы выполняются, но не являются активными; обычно это фоновые задачи, системное ПО, драйвера принтера и т.д.
• stopped Количество остановленных процессов должно, как правило, равняться 0, если вы не послали процессу сигнал a SIGSTOP или kill -STOP для устранения неисправностей. Если это число отличается от 0, то, в случае с рабочими серверами это может служить поводом для беспокойства.
• zombie Зависшие процессы. Это означает, что многопоточное приложение запустило дочерний процесс, а затем было уничтожено или неожиданно завершено, оставив после себя повисший процесс, известный, как zombie-процесс. Apache может наплодить целую кучу таких процессов в случае, если происходит что-то из ряда вон выходящее. Обычно, их число тоже должно равняться 0.
Строка Cpu
Я разобью эту информацию на две части, в них содержится статистика, важная для нашего использования.
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id,
Первые четыре величины, приведенные здесь, присутствуют на всех серверах с linux, и они привычны для большинства людей.
• %us показывает использование отдельного процессора (пользовательскими процессами, такими, как apache, mysql и т.д.) до максимального значения, составляющего 100%. Таким образом, если в четырехъядерном процессоре 1 процесс использует 100% CPU, это даст значение %us, равное 25%. Значение 12,5% для 8-ядерного процессора означает, что занято одно ядро.
• %sy означает использование CPU системой. Обычно это значение невысоко, высокие его значения могут свидетельствовать о проблеме с конфигами ядра, проблему со стороны драйвера, или целый ряд других вещей.
• %ni означает процент CPU, используемого пользовательскими процессами, на которые повлияло использование команд nice или renice, т.е. по существу их приоритет был изменен по сравнению с приоритетом по умолчанию, назначаемому планировщиком, на более высокий или низкий. При назначении какому-либо процессу команды nice, положительное число означает более низкий приоритет (1 = 1 шаг ниже нормального), а отрицательное число означает более высокий приоритет. 0 – значение по умолчанию, что означает, что решение о приоритете принимает планировщик. Можно установить, какой планировщик используется вашей системой, но это более сложная тема для следующих статей. Кроме того, любая величина в процентах, приведенная в этот статье не накладывается на величину %us, которая показывает только пользовательские процессы с невыставленным приоритетом.
• %id – результат, получающийся при вычитании трех предыдущих значений из 100,0%, и измеряющий «простаивающую» вычислительную мощность.
0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Второй набор значений связан с виртуализацией, и именно по ним мы можем точно отследить те проблемы, которые, возможно, вносят вклад в высокое значение средней нагрузки.
• %wa – iowait, процент времени (циклов, секунд), в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Когда какой-либо процесс или программа запрашивает данные, он сначала проверяет кэш процессора (в нем имеется 2 или 3 кэша), затем проверяет память и, наконец, доходит до диска. Дойдя до диска, процессу или программе обычно приходится ждать, пока поток ввода-вывода передаст информацию в оперативную память, прежде чем иметь возможность снова на нем работать. Чем медленнее диск, тем выше будет значение IO Wait % для каждого процесса. Это происходит также с процессами записи на диск, если системный буфер заполнен и его необходимо прочистить при помощи ядра – обычно это наблюдается на серверах баз данных с высокой нагрузкой. Если значение IO Wait стабильно превышает <100 >%, это означает, что, возможно, имеется проблема хранения, с которой необходимо разобраться. Если вы наблюдаете высокую среднюю нагрузку, прежде всего, проверьте этот параметр. Если он высок, тогда узкое место в процессах, скапливающихся на диске, а не в чем-либо еще.
• %hi означает прерывания на уровне железа; на плате электроны движутся по микросхемам предсказуемым образом. Например, когда сетевая карта получает пакет, перед передачей информации, содержащейся в пакете в процессор через ядро, она запросит прерывание в канале прерывания материнской платы. Процессор сообщает ядру, что у сетевой карты для него есть информация, а ядро имеет возможность решить, как поступить. Высокое значение времени, тратящегося на обработку прерываний на уровне железа встречается на виртуальной машине довольно редко, но по мере того, как гипервизоры предоставляют в распоряжение виртуальных машин все больше «железа», эта ситуация может измениться. Чрезвычайно высокая пропускная способность сети, использование USB, вычисления на графических процессорах, — все это может привести к росту этого параметра на величину, превышающую несколько процентов.
• %si – прерывание на уровне софта; в ядре linux версии 2.4 реализована возможность запроса прерывания программным обеспечением (приложениями), а не элементом аппаратного обеспечения или устройством (драйвером), запрашивающим прерывание в канале прерывания материнской платы; запрос обслуживается ядром посредством его обработчика прерываний. Это означает, что приложение может запросить приоритетный статус, ядро может подтвердить получение команда, а программное обеспечение будет терпеливо ждать, пока прерывание не будет обслужено. Если мы применим утилиту tcpdump к гигабитному каналу с высоким трафиком, то значение может измениться примерно на 10%, — по мере заполнения выделенной памяти tcpdump, утилита посылает зарос на прерывание, чтобы переместить данные со стека на диск, экран, или куда угодно еще.
• %st — самый важный параметр из всех в списке, по моему мнению, это IOSteal%. В виртуализированной среде множество логических серверов могут работать под одним фактическим гипервизором. Каждой виртуальной машине(VM) мы присваиваем 4-8 «виртуальных» CPU; хотя сами гипервизоры могут не иметь (кол-во VM * кол-во виртуальных CPU на одну VM). Причина этого заключается в том, что мы не перегружаем CPU использованием наших виртуальных машин, так что если мы дадим одной-двум VM возможность изредка использовать 8 процессоров, это не будет негативно влиять на весь пул в целом. Однако если виртуальными процессорами VM используется количество CPU, превышающее количество физических (или логических, в случае с гиперпотоковыми процессорами Xeon), тогда значение iosteal будет расти.
iosteal% — мера загруженности гипервизора; наличие в каком-либо пуле виртуальных машин, демонстрирующих стабильно высокое значение параметра iosteal% (более 15%) может свидетельствовать о необходимости переноса некоторых из VM в другую часть пула.
iowait% является показателем производительности диска. В системе хранения данных, поддерживаемой NetApp, у нас может не получиться решить проблему производительности без перемещения тома на менее используемый, или другой диск NetApp. В случае с локальным диском (SSD или SAS) это может означать, что в гипервизоре имеется слишком много VM, интенсивно использующих ресурсы диска, и может потребоваться перенести некоторые из этих VM в другую часть пула.
Подведем итоги:
• Средняя нагрузка, на самом деле, ни о чем не говорит.
• Параметр %userland (%us) важен для средней нагрузки, поскольку он говорит о том, что производятся вычисления. Например, mysql, займет всего один поток, поэтому при полной нагрузке будет использовать (1/кол-во виртуальных CPU, присвоенных VM). postgresql является многопоточным, и может использовать больше процессоров, если они будут выделены, – помните об этом, создавая виртуальные машины в гипервизоре, чтобы предотвратить:
• %st – iosteal% — показатель загруженности гипервизора. Создание стека из 4-х postgresql и 6 серверов tomcat под одним гипервизором может быть разумным с точки зрения бизнеса, но вам придется все время конкурировать за процессорное время.
• %wa – iowait% — показатель количества времени, которое уходит на отсылку ваших процессов на невероятно медленные диски, неважно какое решение для хранения данных вы используете. Диски, даже SSD, сравнительно медленные. Добавление ОЗУ для увеличения буфера ядра может немного смягчить проблему. ОЗУ дешевле диска, если учесть, насколько молниеносно она работает по сравнению с ним.
Дополнительные команды
iostat
Если вы столкнулись с высокими значениями параметров iowait или iosteal, можно с точностью отследить, какой диск является этому причиной, при помощи команды iostat. Запускается она таким образом:
Более подробно, см. руководство по iostat. Разбивка, выводимая каждую секунду, с каких и на какие диски идет чтение/ запись, а также все значения iosteal или iowait, связанные с доступом к этим дискам.
htop
Команда по использованию CPU и процессов на системе Linux. Он не показывает виртуальную статистику, но отображает дерево процессов, а также разбивку каждого процессора в системе, его использование; кроме того, он показывает статистику свопинга и памяти, позволяющую отследить неприятные утечки памяти, раскрашивая все это симпатичными цветами. По моему мнению, этот пакет должен быть обязательным для всех VM.
Источник
How Do I Find Out Linux CPU Utilization?
W henever a Linux system CPU is occupied by a process, it is unavailable for processing other requests. Rest of pending requests must wait until the CPU is free. This becomes a bottleneck in the system. Following command will help you to identify CPU utilization, so that you can troubleshoot CPU-related performance problems on a Linux-based system. This page explains how to check Linux CPU utilization and usage using various tools.
Finding CPU utilization is one of the important tasks. Linux comes with various utilities to report CPU utilization. With these commands, you will be able to find out:
- CPU utilization
- Display the utilization of each CPU individually (SMP cpu)
- Find out your system’s average CPU utilization since the last system reboot
- Determine which process is eating the CPU(s)
The old good top command to find out Linux CPU Utilization
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel. The top command monitors CPU utilization, process statistics, and memory utilization. The top section contains information related to overall system status – uptime, load average, process counts, CPU status, and utilization statistics for both memory and swap space.
Top command to find out Linux cpu usage
Type the top command:
$ top
Say hello to htop
htop is similar to top command but allows you to scroll vertically and horizontally and much more.
htop
Find Linux CPU utilization using mpstat and other tools
Please note that you need to install a special package called sysstat to take advantage of following commands. This package includes system performance tools for Linux (Red Hat Linux / RHEL includes these tools by default). Install it on a Debian or Ubuntu Linux using apt-get command/apt command:
# apt-get install sysstat
Use up2date command if you are using RHEL/CentOS Linux v4.x or older:
# up2date install sysstat
Run yum command command if you are using a CentOS/RHEL/Oracle Linux v5.x+ or newer:
# yum install sysstat
Fedora users should run the dnf command:
# dnf install sysstat
Display the utilization of each CPU individually using mpstat
If you are using SMP (Multiple CPU) system, use mpstat command to display the utilization of each CPU individually. It report processors related statistics. For example, type command:
# mpstat
Sample outputs:
The mpstat command display activities for each available processor, processor 0 being the first one. Global average activities among all processors are also reported. The mpstat command can be used both on SMP and UP machines, but in the latter, only global average activities will be printed.:
# mpstat -P ALL
Sample outputs:
Another output from my Ubuntu 18.04 LTS server:
Report CPU utilization using the sar command
You can display today’s CPU activity, with the help of sar command:
# sar
Output:
Comparison of CPU utilization
The sar command writes to standard output the contents of selected cumulative activity counters in the operating system. The accounting system, based on the values in the count and interval parameters. For example display comparison of CPU utilization; 2 seconds apart; 5 times, use:
# sar -u 2 5
Output (for each 2 seconds. 5 lines are displayed):
- -u 12 5 : Report CPU utilization. The following values are displayed:
- %user: Percentage of CPU utilization that occurred while executing at the user level (application).
- %nice: Percentage of CPU utilization that occurred while executing at the user level with nice priority.
- %system: Percentage of CPU utilization that occurred while executing at the system level (kernel).
- %iowait: Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.
- %idle: Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.
To get multiple samples and multiple reports set an output file for the sar command. Run the sar command as a background process using.
# sar -o output.file 12 8 >/dev/null 2>&1 &
Better use nohup command so that you can logout and check back report later on:
# nohup sar -o output.file 12 8 >/dev/null 2>&1 &
All data is captured in binary form and saved to a file (data.file). The data can then be selectively displayed ith the sar command using the -f option.
# sar -f data.file
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Task: Find out who is monopolizing or eating the CPUs
Finally, you need to determine which process is monopolizing or eating the CPUs. Following command will displays the top 10 CPU users on the Linux system.
# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
OR
# ps -eo pcpu,pid,user,args | sort -r -k1 | less
Sample outputs:
Now you know vmware-vmx process is eating up lots of CPU power. The ps command command displays every process ( -e ) with a user-defined format ( -o pcpu ). First field is pcpu (cpu utilization). It is sorted in reverse order to display top 10 CPU eating process.
iostat command
You can also use iostat command which report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions. It can be use to find out your system’s average CPU utilization since the last reboot.
# iostat Output:
You may want to use following command, which gives you three outputs every 5 seconds (as previous command gives information since the last reboot): $ iostat -xtc 5 3
vmstat command
The vmstat command shows information about processes, memory, paging, block IO, traps, disks and cpu activity. Run vmstat as follows:
vmstat
vmstat [options] vmstat [interval] [count]
Sample outputs:
In this example, run vmstat with an interval of one second twenty one times:
vmstat 1 21
How to interpret vmstat CPU section output
These are percentages of total CPU time.
- us : Time spent running non-kernel code. (user time, including nice time)
- sy : Time spent running kernel code. (system time)
- id : Time spent idle.
- wa : Time spent waiting for IO.
- st : Time stolen from a virtual machine.
turbostat command
The turbostat command shows processor topology, frequency, idle power-state statistics, temperature and power on X86 processors. Simply run as follows:
sudo turbostat
sudo turbostat 5
See turbostat man page for further details.
nmon command
nmon is a systems administrator tool to get information about cpu, top process, memory and much more. One can install it as follows:
sudo apt install nmon ## Debain/ubuntu ##
sudo dnf install nmon ## fedora ##
sudo yum install nmon ## centos/rhel ##
Now start it:
nmon
GUI tools for your laptops/desktops
Above tools/commands are quite useful on remote server. For local system with X GUI installed you can try out gnome-system-monitor. It allows you to view and control the processes running on your system. You can access detailed memory maps, send signals, and terminate the processes.
$ gnome-system-monitor
Sample outputs:
In addition, the gnome-system-monitor provides an overall view of the resource usage on your system, including memory and CPU allocation:
Finding out Linux CPU usage using GUI tool
Conclusion
This page explained various Linux command line tools that we can use to find Linux CPU utilization. For further information, see the following resources:
Источник