Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Утилиты для оценки состояния и производительности : Linux

23.11.2024 8:03


29.04.2015 10:33
В отличие от игрушечных ОС, в которых TaskManager чаще всего служит средством медитации и расслабления, поскольку малоинформативен и в некоторых случаях врет, в Linux подобных средств очень много и некоторые заслуживают особого внимания.

Прошу воздержаться в этой теме от вопросов и холивара, для чего можно завести отдельные темы. Просто перечисляем интересные утилиты и коротенько их функционал в свободной форме.
Начну с самого распространенного.
29.04.2015 10:36
top

Утилитка есть практически везде.
Она отображает суммарную информацию по загрузке машины, по умолчанию выводит список процессов с сортировкой по загрузке CPU.
Для вывода справки (достаточно подробной и внятной) необходимо нажать h. Можно менять графу и порядок сортировки, отключить заголовок или сделать вывод цветным. Можно убивать процессы или менять им приоритет. Справка достаточно большая и заслуживает внимания.
Выход - q.
29.04.2015 10:46
htop

Утилитка для тех, кто не застал старую школу, чтобы оценить функционал top, но еще достаточно вменяем, чтобы понимать консольный вывод.
Все клавиши подписаны, ncurses-меню позволяют потратить время, чтобы побегать по ним для настроек. Да, попроцессорный вывод, вывод дерева процессов, цветной по умолчанию... Стыдно сознаться, но я очень часто пользуюсь именно этим вариантом top. Неудачный немного скриншот, правее остались колонки с вводом-выводом и командой запуска.
29.04.2015 10:54
vmstat

Утилита оценки состояния виртуальной памяти. Как и многие другие утилиты, в качестве параметра принимает время обновления в секундах (в скриншоте - 3 секунды). Каждое обновление добавляется еще одна строка до нажатия Ctrl-C. Видно, что выводит свободную память, кеш и буферы, ввод-вывод и статистику по CPU.
Код:
vmstat -a
показывает количество активных/неактивных страниц.
Код:
vmstat -m
отображает подробную статистику использования памяти.
29.04.2015 11:00
w
Код:
 17:58:47 up 15 days, 20:28,  2 users,  load average: 1.36, 1.26, 1.24
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.1.3.145       14:55    5.00s  0.04s  0.02s vim /etc/resolv.conf
root     pts/1    10.1.3.145       17:43    0.00s  0.03s  0.00s w
Краткость - сестра таланта. Достаточно ввести в командной строке w, нажать ввод и вот - перечислены пользователи на машине и что они делают.
29.04.2015 11:06
uptime
Код:
 11:00:56 up 15 days, 20:57,  3 users,  load average: 1,14, 1,03, 1,04
Утилита выводит текущее время, время с момента перезагрузки и load average, достаточно мутное значение средней загрузки, текущее, за последние 5 минут и за последние 15 минут. Значения зависят от конфигурации ядра и количества процессоров, но дают возможность понять, снижается ли нагрузка или растет. В большинстве случаев можно оценивать эти значения следующим образом: если у вас 4 ядра, то цифры 4 в LA обозначают, что все ядра загружены на 100%, если меньше 4 - периодически освобождается какое-то ядро, больше 4 - все ядра заняты на 100% и этих ресурсов не хватает, какие-то задания стоят в очереди.
29.04.2015 11:28
ps
Код:
  PID TTY          TIME CMD
    1 ?        00:00:02 init
    2 ?        00:00:02 migration/0
    3 ?        00:00:01 ksoftirqd/0
    4 ?        00:00:00 watchdog/0
    5 ?        00:00:00 migration/1
    6 ?        00:00:15 ksoftirqd/1
....
.....
 4881 ?        00:53:28 java
 4885 tty1     00:00:00 mingetty
 4886 tty2     00:00:00 mingetty
 4887 tty3     00:00:00 mingetty
 4888 tty4     00:00:00 mingetty
 4891 tty5     00:00:00 mingetty
 4892 tty6     00:00:00 mingetty
 4893 ttyS1    00:00:00 agetty
12853 ?        00:00:00 cifsoplockd
12854 ?        00:00:00 cifsdnotifyd
14231 ?        00:10:34 lighttpd
14232 ?        00:00:00 php-cgi
54981 pts/0    00:00:00 vim
55465 ?        00:00:00 php-cgi
55546 ?        00:00:00 bind9-snmp-stat
55704 pts/1    00:00:00 ps
Утилита выводит список процессов. Очень удобно для определения и манипуляции ими. Например, для проверки того, что какие-то БД запущены, я делаю
Код:
ps -ef | grep pmon
olegon   17797 17766  0 11:15 pts/1    00:00:00 grep --color=auto pmon
olegon   26977     1  0 апр28 ?     00:00:02 ora_pmon_smtest
Есть масса ключей, позволяющих выводить список в разных форматах, например, полный
Код:
ps -Al
подробный
Код:
ps -AlF
вывод дерева потоков
Код:
ps -AlFH
варианты вывода всех процессов
Код:
ps ax
ps aux
вывод дерева процессов
Код:
ps -ejH
ps axjf
pstree
вывод информации по безопасности (имена пользователей процессов и т.п.)
Код:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
можно вообще задать требуемые для вывода колонки
Код:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
вывод информации по PID
Код:
ps -p 769
вывод TOP10 по потреблению памяти
Код:
ps -auxf | sort -nr -k 4 | head -10
вывод TOP10 по процессору
Код:
ps -auxf | sort -nr -k 3 | head -10
29.04.2015 11:30
free
Код:
             total       used       free     shared    buffers     cached
Mem:       8114080    7784156     329924    1406288     499020    4719728
-/+ buffers/cache:    2565408    5548672
Swap:            0          0          0
вывод свободной, занятой памяти, буферов... Если честно, почти никогда ее не использую. Но знать о ней надо.
29.04.2015 11:33
iostat
Код:
iostat -xm 1
Linux 3.18.11-gentoo (box) 	04/29/2015 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1,90    2,54    0,44    0,15    0,00   94,98

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,01     5,04    4,58   19,44     0,18     0,27    38,36     0,03    1,12    0,61    1,24   0,27   0,64

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,49    0,00    0,25    0,25    0,00   99,01

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,00     0,00    0,98    0,00     0,01     0,00    16,00     0,00    0,00    0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,25    0,00    0,00    0,00    0,00   99,75

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1,75    0,00    0,00    0,25    0,00   97,99

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,00    18,81    2,97   11,88     0,02     0,12    18,67     0,03    2,00    3,33    1,67   2,00   2,97
Незаменимая утилита для оценки производительности ввода-вывода. Выводит количество запросов на ввод-вывод, объем прочитанного/записанного и размер очереди. Обратите внимание, что на некоторых ОС и в сочетании с некоторыми рейдами утилита не отображает часть дисков. Например, подключенные по Fibre channel на Solaris у меня не показывает. В примере, как и выше с vmstat - обновление, вывод раз в секунду очередной порции данных.
29.04.2015 12:02
sar
Код:
11:05:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
11:15:01 AM      eth0     64,80    154,72      8,50    197,30      0,00      0,00      0,00      0,16
11:15:01 AM      eth1    216,94    170,52    197,11    140,90      0,00      0,00      0,00      1,61
11:15:01 AM        lo      3,63      3,63      1,08      1,08      0,00      0,00      0,00      0,00
11:25:01 AM      eth0     41,23    105,57      4,01    140,58      0,00      0,00      0,00      0,12
11:25:01 AM      eth1    173,89    146,25    149,37    133,81      0,00      0,00      0,00      1,22
11:25:01 AM        lo      5,17      5,17      4,06      4,06      0,00      0,00      0,00      0,00
11:35:01 AM      eth0     40,05     99,27     13,91    127,95      0,00      0,00      0,00      0,10
11:35:01 AM      eth1    193,97    181,69    135,19    197,86      0,00      0,00      0,00      1,62
11:35:01 AM        lo     35,68     35,68     87,64     87,64      0,00      0,00      0,00      0,00
Average:         eth0     12,84     25,07      2,06     28,95      0,00      0,00      0,00      0,02
Average:         eth1     90,38     83,64     32,17     78,98      0,00      0,00      0,00      0,65
Average:           lo      4,78      4,78      4,45      4,45      0,00      0,00      0,00      0,00
Утилита, коллекционирующая счетчики и выводящая их по требованию, в том числе текущие и исторические. Это и загрузка процессора, и сетевые интерфейсы и диск.
Примеры команды:
вывод счетчиков по сетевым интерфейсам
Код:
sar -n DEV | less
вывод счетчиков по сетевым интерфейсам за 27 число
Код:
sar -n DEV -f /var/log/sa/sa27 | less
вывод счетчиков в реальном времени
Код:
sar 4 5
Часовой пояс GMT +3, время: 08:03.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.