ЦП#
- Основные понятия
- Разграничение и позиционирование
- Стандартные инструменты для анализа производительности ЦП
Основные понятия#
Центральный процессор (ЦП) является одним из основных устройств компьютера, а его задача заключается в интерпретации компьютерных инструкций и обработке данных в компьютерном программном обеспечении.
- Физическое ядро — это реальное ядро процессора, которое можно увидеть. Оно имеет независимые компоненты схемы, кэши L1 и L2 и может независимо выполнять инструкции. Процессор может иметь несколько физических ядер.
- Логическое ядро — ядро, которое существует на логическом уровне в одном физическом ядре. Как правило, физическое ядро соответствует потоку. Однако, если гиперпоточность включена и число гиперпотоков равно n, физическое ядро можно разделить на n логических ядер. Вы можете выполнить команду lscpu, чтобы проверить количество ЦП на сервере, а также количество физических и логических ядер в каждом ЦП.
Разграничение и позиционирование#
Стандартные инструменты для анализа производительности ЦП#
- uptime: выводит среднюю нагрузку системы. Можно просмотреть последние три значения, чтобы определить тренд изменения средней нагрузки. Если средняя нагрузка превышает количество ЦП, ЦП становится недостаточно для обслуживания потоков, поэтому некоторые потоки находятся в состоянии ожидания. Если средняя нагрузка меньше количества ЦП, значит остаются незагруженные процессоры.
- vmstat: динамически отслеживает использование системных ресурсов и проверяет, какая фаза потребляет больше всего таких ресурсов. Можно выполнить команду vmstat -h для просмотра параметров этой команды. Пример.
#Monitor the status and update the status every second.
vmstat 1
Ниже описаны поля в выходных данных команды:
Поле | Описание |
---|---|
procs | Информация о процессах. |
memory | Информация о памяти. |
swap | Информация о разделе подкачки. |
io | Информация о чтении/записи диска. |
system | Информация о системе. |
cpu | Информация о ЦП. -us: процент вычислительного времени ЦП, которое потребляют процессы, не относящиеся к ядру. -sy: процент вычислительного времени ЦП, которое потребляют процессы ядра. -id: простой. -wa: процент ресурсов ЦП, потребляемых при ожидании операций ввода-вывода. -st: процент ресурсов ЦП, недополученных виртуальными машинами. |
- sar: анализирует производительность системы, отслеживает текущие действия и конфигурации, а также архивирует накопленные статистические данные и создает по ним отчеты.
Пример:
# Check the overall CPU load of the system. Collect the statistics every 3 seconds for five times.
sar -u 3 5
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
%user | Процент процессорного времени, потребляемого в пользовательском режиме. |
%nice | Процент процессорного времени, потребляемого процессом, приоритет планирования которого изменен с помощью nice в пользовательском режиме. |
%system | Процент процессорного времени, используемого в системном режиме. |
%iowait | Процент времени, затраченного ЦП на ожидание операций ввода-вывода диска в состоянии простоя. |
%steal | Процент времени, используемого для ожидания других вычислений на виртуальном ЦП с использованием технологий виртуализации ОС. |
%idle | Процент времени простоя ЦП. |
- ps: отображает запущенные процессы.
# View all processes in the system, and view the PIDs and priorities of the their parent processes.
ps -le
# View the processes generated by the current shell.
ps -l
- top: динамически и непрерывно отслеживает текущее состояние процессов и отображает процессы, которые потребляют больше всего ресурсов ЦП.
top
Память#
- Основные понятия
- Разграничение и позиционирование
- Стандартные инструменты и методы для анализа памяти
Основные понятия#
Память является важным компонентом компьютера и используется для временного хранения рабочих данных в ЦП и данных, которыми система обменивается с внешней памятью, например аппаратным обеспечением. В частности, архитектура неравномерного доступа к памяти (NUMA) — это принцип построения памяти, разработанный для многопроцессорного компьютера. Время доступа к памяти зависит от расположения памяти относительно процессора. В режиме NUMA процессор обращается к локальной памяти быстрее, чем к нелокальной (такая память находится в другом процессоре или разделяется между процессорами).
Разграничение и позиционирование#
Стандартные инструменты и методы для анализа памяти#
- free: отображает состояние системной памяти. Пример.
# Display the system memory status in MB.
free -m
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
total | Общий объем памяти. |
used | Используемая память. |
free | Свободная память. |
shared | Общий объем памяти, совместно используемой несколькими процессами. |
buff/cache | Общее количество буферов и кэшей. |
available | Приблизительный доступный объем памяти для запуска нового приложения без использования подкачки. |
- vmstat: динамически отслеживает системную память и ее использование.
Пример.
# Monitor the system memory and display active and inactive memory.
vmstat -a
Поле, относящееся к памяти, в выходных данных команды описано ниже:
Поле | Описание |
---|---|
memory | Информация о памяти. -swpd: использование виртуальной памяти в КБ. -free: объем свободной памяти в КБ. -inact: объем неактивной памяти в КБ. -active: объем активной памяти в КБ. |
- sar: отслеживает использование памяти в системе.
Пример.
# Monitor the memory usage in the sampling period in the system. Collect the statistics every two seconds for three times.
sar -r 2 3
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
kbmemfree | Неиспользуемый объем памяти. |
kbmemused | Используемый объем памяти. |
%memused | Процент занятого объема памяти. |
kbbuffers | Объем данных, хранящихся в буфере. |
kbcached | Объем доступа к данным во всех областях системы. |
- numactl: отображает конфигурацию и состояние узлов NUMA.
Пример.
# Check the current NUMA configuration.
numactl -H
# Check the NUMA node status.
numastat
Поля в выходных данных команды numstat описаны ниже.
Поле | Описание |
---|---|
numa_hit | Количество обращений ядра ЦП к локальной памяти на узле. |
numa_miss | Количество обращений ядра узла к памяти других узлов. |
Ввод-вывод#
- Основные понятия
- Разграничение и позиционирование
- Стандартные инструменты для анализа производительности ввода-вывода
Основные понятия#
Под вводом-выводом понимаются операции ввода-вывода. Ввод обозначает операцию получения сигналов или данных системой, а вывод — операцию отправки сигналов или данных из системы. Для сочетания ЦП и оперативной памяти любая информация, входящая туда или исходящая оттуда, рассматривается как операции ввода-вывода.
Разграничение и позиционирование#
Стандартные инструменты для анализа производительности ввода-вывода#
- iostat: выводит статистику обо всех подключенных дисках.
Пример.
# Display the drive information in KB. Collect the statistics every second and for 100 seconds.
iostat -d -k -x 100
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
Device | Имя устройства мониторинга. |
r/s | Количество запросов на чтение, выполняемых устройством в секунду (после объединения). |
rKB/s | Количество КБ, считываемых с диска в секунду. |
rrqm/s | Количество операций чтения, объединяемых в очередь запросов в секунду. |
%rrqm | Процент запросов на чтение, объединенных до их отправки на устройство. |
r_await | Среднее время, затрачиваемое на каждый запрос на чтение. |
rareq-sz | Средний размер запросов на чтение, отправляемых на устройство, в КБ. |
w/s | Количество запросов на запись, выполняемых устройством в секунду (после объединения). |
wKB/s | Количество КБ, записываемых на диск в секунду. |
wrqm/s | Количество операций записи, объединяемых в очередь запросов в секунду. |
%wrqm | Процент запросов на запись, объединенных до их отправки на устройство. |
w_await | Среднее время, затрачиваемое на каждый запрос на запись. |
wareq-sz | Средний размер запросов на запись, отправляемых на устройство, в КБ. |
d/s | Количество запросов на сброс, обрабатываемых устройством в секунду. |
dKB/s | Количество секторов (КБ), отбрасываемых устройством в секунду. |
drqm/s | Количество запросов на сброс, объединяемых в очередь устройства в секунду. |
%drqm | Процент запросов на сброс, объединяемых до их отправки на устройство. |
d_await | Среднее время отправки запросов на сброс на устройство для их обслуживания. |
dareq-sz | Средний размер запросов на сброс, отправляемых на устройство, в КБ. |
f/s | Количество запросов на обновление, выполняемых устройством в секунду (после объединения). |
f_await | Среднее время отправки запросов на обновление на устройство для их обслуживания. |
aqu-sz | Средняя длина очереди запросов, отправляемых на устройство. |
%util | Процент времени операций ввода-вывода, т. е. использование соответствующих ресурсов. |
- sar: отображает производительность операций чтения и записи для системного диска.
Пример.
# Display the usage status of all hard drives in the system in the sampling period. Collect the statistics every 3 seconds for five times.
sar -d 3 5
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
tps | Общее количество операций передачи, отправляемых на физическое устройство в секунду. |
rKB/s | Количество КБ, считываемых с устройства в секунду. |
wKB/s | Количество КБ, записываемых на устройство в секунду. |
dKB/s | Количество КБ, отбрасываемых устройством в секунду. |
areq-sz | Средний размер (КБ) запросов ввода-вывода, отправляемых на устройство. |
aqu-sz | Средняя длина очереди запросов, отправляемых на устройство. |
await | Среднее время отправки запросов ввода-вывода на устройство для их обслуживания. |
%util | Процент времени, используемого для отправки запросов ввода-вывода на устройство (использование пропускной способности устройства). |
- vmstat
# Run the vmstat command to monitor and report drive statistics.
vmstat -d
Поля в выходных данных команды описаны ниже.
Поле | Описание |
---|---|
reads | -total: общее количество успешно завершенных операций чтения. -merged: количество объединенных операций чтения (образующих одну операцию ввода-вывода). -sectors: секторы, из которых данные успешно считаны. -ms: количество миллисекунд, потраченных на чтение данных. |
writes | -total: общее количество успешно завершенных операций записи. -merged: объединенные операции чтения (образующие одну операцию ввода-вывода). -sectors: секторы, в которые успешно записаны данные. -ms: количество миллисекунд, потраченных на запись данных. |
IO | Информация об операциях чтения/записи для диска. -bi: общий объем данных, считанных с блочного устройства, в блоках. -bo: общий объем данных, записанных на блочное устройство, в блоках. |