4 главных performance команды

admin

Как быстро диагностировать проблему на сервере? Для этого есть несколько удобных команд.

top

Команда показывает текущие задачи которые обслуживаются ядром. По умолчанию, команда top автоматически обновляет эти данные каждые пять секунд:

top - 11:17:51 up 153 days,  4:51,  1 user,  load average: 0.01, 0.02, 0.05
Tasks:  64 total,   1 running,  63 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    508944 total,   501244 used,     7700 free,   108552 buffers
KiB Swap:        0 total,        0 used,        0 free,   148108 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND           
    1 root      20   0 10648  708  576 S   0.0  0.1   4:40.64 init              
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.02 kthreadd          
    3 root      20   0     0    0    0 S   0.0  0.0   6:03.05 ksoftirqd/0       
    5 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/u:0       
    6 root      rt   0     0    0    0 S   0.0  0.0   0:00.00 migration/0       
    7 root      rt   0     0    0    0 S   0.0  0.0   1:28.15 watchdog/0        
    8 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 cpuset            
    9 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper           
   10 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs         
   11 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns             
   12 root      20   0     0    0    0 S   0.0  0.0   0:30.45 sync_supers       
   13 root      20   0     0    0    0 S   0.0  0.0   0:00.61 bdi-default       
   14 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kintegrityd       
   15 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kblockd           
   17 root      20   0     0    0    0 S   0.0  0.0   0:18.19 khungtaskd        
   18 root      20   0     0    0    0 S   0.0  0.0   0:27.31 kswapd0           
   19 root      25   5     0    0    0 S   0.0  0.0   0:00.00 ksmd

Никто не использует и половины фишек, которые доступны в этой команде. Если нажать на кнопку h откроется мануал по команде.

С помощью кнопки k можно выключить любой процесс по его PID.

С помощью кнопки x можно менять колонку, по которой сортируются процессы.

Команда выводит базовую информацию о процессах, процессоре и памяти. Процессорное время распределено по таким типам:

  • us: время, проведенное под пользовательские задачи.
  • sy: время, потраченное на работу ядра/системы.
  • id: время ожидания (процессор ничего не делает).
  • wa: время, затраченное на ожидание диска/сети/…
  • st: время, “украденное” из виртуальной машины (платформой виртуализации, плохо когда оно большое).

vmstat

Команда vmstat покажет снапшот процессора, IO, процессов, и памяти:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0   7108 108932 148556    0    0     1    14    3    2  1  0 98  0

Первые колонки показывают процессы:

  • r: процессы, ожидающие процессора
  • b: процессы, ожидающие диска/сети/пользователя и т.п.

.

Оба показателя должны стремиться к нулю.

Следующие колонки показывают использование памяти:

  • swpd: размер используемого свопа, плохо если значительно больше нуля
  • free: свободная память, это должно стремиться к нулю
  • buff: всякие буферы (например на I/O операциях)
  • cache: кэш операционной системы

Дальше идет инфа о вводе/выводе:

  • bi: полученные блоки от устройства (типа диска)
  • bo: отправленные блоки на устройство

Дальше идут данные о прерываниях (in) и переключениях контекста (cs), а также данные об использовании процессора (формат такой же, как и у команды top).

Vmstat показывает краткосрочную картинку, однако стоит иметь представление и о долгосрочных трендах (это дальше).

iostat

Сначала нужно установить команду:

apt-get install sysstat

Команда показывает три отчета: использование процессора, утилизацию i/o и сетевой подсистемы. Если запустить команду без параметров, она будет покажет минимум инфы:

Linux 3.2.0-4-amd64 (ruhighload.com)  10/25/2015  _x86_64_ (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.85    0.00    0.37    0.08    0.71   98.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.01         0.88        13.92   11683285  184438328

Использование устройств (device) показывает все подключенные диски и информацию о их использовании. Чтение в секунду (kB_read/s) и запись в секунду (kB_wrtn/s) помогут дать представление о нагрузке дисков.

free

Команда показывает статистику памяти и свопа:

             **total       used**       free     shared    buffers     cached
Mem:        508944     478368      30576          0      71780     162704
-/+ buffers/cache:     243884     265060
**Swap:            0          0          0**

Количество используемой памяти (used) в хорошем случае должно стремиться ко всей доступной памяти (total), однако swap должен быть минимальным (или нулевым, как у нас).

Самое важное

top, vmstat, iostat и free – 4 команды, которые помогут существенно упростить анализ и настройку производительности серверов.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023