Администрирование систем Linux. Мониторинг использования ресурсов системы
Оригинал: Resource monitoring
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 31 марта 2015 г.
Глава 19. Мониторинг использования ресурсов системы
Процесс мониторинга использования ресурсов системы заключается в сборе информации об использовании ресурсов памяти, центрального процессора, сети и устройств для хранения данных. Вы должны начать мониторинг использования ресурсов вашей системы как можно быстрее для того, чтобы иметь возможность установления соответствующих базовых показателей. Убедитесь в том, что вы установили все базовые показатели использования ресурсов вашей системы! Эти базовые показатели важны, так как они позволят вам обнаружить последовательный или внезапный рост потребления ресурсов системы и, соответственно, последовательное (или внезапное) сокращение доступных ресурсов системы. Эта информация позволяет планировать масштабирование системы с целью расширения или сокращения доступных ресурсов.
Давайте рассмотрим некоторые инструменты, которые могут использоваться для мониторинга использования ресурсов системы помимо рассмотренных ранее команд ps fax, df -h, free -om и du -sh.
19.1. Четыре базовых типа ресурсов системы
Четырьмя базовыми типами ресурсов системы являются:
-
Ресурсы центрального процессора
-
Ресурсы сети
-
Ресурсы оперативной памяти
-
Ресурсы устройств для хранения данных
19.2. Утилита top
В начале процесса мониторинга использования ресурсов системы вы можете прибегнуть к использованию утилиты top. Данная утилита позволяет осуществлять мониторинг использования ресурсов оперативной памяти, центрального процессора и пространства подкачки. Утилита top автоматически обновляет вывод. После запуска данной утилиты вы можете использовать множество команд, таких, как команда k, предназначенная для завершения работы процессов, команды t или m, предназначенные для показа и скрытия информации о процессах и использовании памяти или команда 1, предназначенная для переключения между режимами вывода информации об использовании ресурсов каждого отдельного центрального процессора или всех центральных процессоров.
top - 12:23:16 up 2 days, 4:01, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 61 total, 1 running, 60 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.5% sy, 0.0% ni, 98.9% id, 0.2% wa, 0.0% hi, 0.0% si
Mem: 255972k total, 240952k used, 15020k free, 59024k buffers
Swap: 524280k total, 144k used, 524136k free, 112356k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 2816 560 480 S 0.0 0.2 0:00.91 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
3 root 5 -10 0 0 0 S 0.0 0.0 0:00.57 events/0
4 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 khelper
5 root 15 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
16 root 5 -10 0 0 0 S 0.0 0.0 0:00.08 kblockd/0
26 root 15 0 0 0 0 S 0.0 0.0 0:02.86 pdflush
...
Вы можете настроить утилиту top таким образом, чтобы осуществлялся вывод исключительно выбранных вами столбцов или вывод параметров единственного процесса, который вас интересует.
[paul@RHELv4u3 ~]$ top p 3456 p 8732 p 9654
19.3. Утилита free
Утилита free является стандартным инструментом из состава различных дистрибутивов Linux, предназначенным для осуществления мониторинга объема неиспользованной памяти. Вы можете использовать утилиту free для вывода информации через каждые x секунд, но вывод не будет таким же идеальным, как у предыдущего инструмента.
[paul@RHELv4u3 gen]$ free -om -s 10
total used free shared buffers cached
Mem: 249 222 27 0 50 109
Swap: 511 0 511
total used free shared buffers cached
Mem: 249 222 27 0 50 109
Swap: 511 0 511
[paul@RHELv4u3 gen]$
19.4. Утилита watch
Более интересных результатов можно достичь при комбинировании утилиты free с утилитой watch. Эта утилита может исполнять команды с задержкой, а также выделять изменения в выводе (в случае использования параметра -d).
[paul@RHELv4u3 ~]$ watch -d -n 3 free -om
...
Every 3.0s: free -om Sat Jan 27 12:13:03 2007
total used free shared buffers cached
Mem: 249 230 19 0 56 109
Swap: 511 0 511
19.5. Утилита vmstat
Для получения статистики использования ресурсов центрального процессора, устройств хранения данных и памяти в однострочном формате в составе дистрибутивов имеется утилита vmstat. В примере ниже показан вывод утилиты vmstat, обновляющей значения параметров 100 раз в течение каждых двух секунд (или до момента нажатия сочетания клавиш Ctrl-C). В столбце r приводится количество процессов, ожидающих доступности ресурсов центрального процессора, а количество процессов в неактивном состоянии приводится в столбце b. Объем станиц памяти в пространстве подкачки остается неизменным и равным 144 килобайтам, объем свободной оперативной памяти резко снизился с 16.7 МБ до 12.9 МБ. Для получения информации об остальных данных, выводимых утилитой vmstat, следует обратиться к странице руководства man vmstat.
[paul@RHELv4u3 ~]$ vmstat 2 100
procs ----------memory--------- --swap-- ---io--- --system-- ---cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 144 16708 58212 111612 0 0 3 4 75 62 0 1 99 0
0 0 144 16708 58212 111612 0 0 0 0 976 22 0 0 100 0
0 0 144 16708 58212 111612 0 0 0 0 958 14 0 1 99 0
1 0 144 16528 58212 111612 0 0 0 18 1432 7417 1 32 66 0
1 0 144 16468 58212 111612 0 0 0 0 2910 20048 4 95 1 0
1 0 144 16408 58212 111612 0 0 0 0 3210 19509 4 97 0 0
1 0 144 15568 58816 111612 0 0 300 1632 2423 10189 2 62 0 36
0 1 144 13648 60324 111612 0 0 754 0 1910 2843 1 27 0 72
0 0 144 12928 60948 111612 0 0 312 418 1346 1258 0 14 57 29
0 0 144 12928 60948 111612 0 0 0 0 977 19 0 0 100 0
0 0 144 12988 60948 111612 0 0 0 0 977 15 0 0 100 0
0 0 144 12988 60948 111612 0 0 0 0 978 18 0 0 100 0
[paul@RHELv4u3 ~]$
19.6. Утилита iostat
Утилита iostat может выводить статистическую информацию об использовании ресурсов устройств для хранения данных и центрального процессора. Использованный в примере ниже параметр -d сообщает утилите iostat о необходимости вывода информации об использовании ресурсов устройств для хранения данных (500 раз в течение каждых двух секунд). В первом блоке данных приведена статистическая информация об использовании описанных ресурсов с момента последней перезагрузки системы.
[paul@RHELv4u3 ~]$ iostat -d 2 500
Linux 2.6.9-34.EL (RHELv4u3.localdomain) 01/27/2007
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hdc 0.00 0.01 0.00 1080 0
sda 0.52 5.07 7.78 941798 1445148
sda1 0.00 0.01 0.00 968 4
sda2 1.13 5.06 7.78 939862 1445144
dm-0 1.13 5.05 7.77 939034 1444856
dm-1 0.00 0.00 0.00 360 288
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hdc 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0
sda1 0.00 0.00 0.00 0 0
sda2 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
...
[paul@RHELv4u3 ~]$
Вы можете получать больший объем статистических данных, использовав команду iostat -d -x, или получать исключительно статистические данные, касающиеся центрального процессора, воспользовавшись командой iostat -c.
[paul@RHELv4u3 ~]$ iostat -c 5 500
Linux 2.6.9-34.EL (RHELv4u3.localdomain) 01/27/2007
avg-cpu: %user %nice %sys %iowait %idle
0.31 0.02 0.52 0.23 98.92
avg-cpu: %user %nice %sys %iowait %idle
0.62 0.00 52.16 47.23 0.00
avg-cpu: %user %nice %sys %iowait %idle
2.92 0.00 36.95 60.13 0.00
avg-cpu: %user %nice %sys %iowait %idle
0.63 0.00 36.63 62.32 0.42
avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.20 0.20 99.59
[paul@RHELv4u3 ~]$
19.7. Утилита mpstat
При работе с мультипроцессорными машинами для получения статистических данных об использовании ресурсов всех или выбранных центральных процессоров может использоваться утилита mpstat.
paul@laika:~$ mpstat -P ALL
Linux 2.6.20-3-generic (laika) 02/09/2007
CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
all 1.77 0.03 1.37 1.03 0.02 0.39 0.00 95.40 1304.91
0 1.73 0.02 1.47 1.93 0.04 0.77 0.00 94.04 1304.91
1 1.81 0.03 1.27 0.13 0.00 0.00 0.00 96.76 0.00
paul@laika:~$
19.8. Утилиты sadc и sar
Утилита sadc предназначена для записи данных, связанных с использованием ресурсов системы, в файлы /var/log/sa??, где символы ?? заменяются на номер текущего дня месяца. По умолчанию демон crond исполняет сценарий sal через каждые 10 минут, а сценарий sal, в свою очередь, запускает на секунду утилиту sadc. Также ежедневно перед полночью демон crond исполняет сценарий sa2, который, в свою очередь, запускает утилиту sar. Утилита sar читает данные, собранные утилитой sadc в течение дня, и помещает сгенерированный на их основе отчет в файл /var/log/sa/sar??. Эти отчеты, созданные утилитой sar, содержат большой объем статистических данных.
Также вы можете использовать утилиту sar для вывода фрагмента собранных статистических данных. В примере ниже приведен такой фрагмент статистических данных, относящихся к центральному процессору.
[paul@RHELv4u3 sa]$ sar -u | head
Linux 2.6.9-34.EL (RHELv4u3.localdomain) 01/27/2007
12:00:01 AM CPU %user %nice %system %iowait %idle
12:10:01 AM all 0.48 0.01 0.60 0.04 98.87
12:20:01 AM all 0.49 0.01 0.60 0.06 98.84
12:30:01 AM all 0.49 0.01 0.64 0.25 98.62
12:40:02 AM all 0.44 0.01 0.62 0.07 98.86
12:50:01 AM all 0.42 0.01 0.60 0.10 98.87
01:00:01 AM all 0.47 0.01 0.65 0.08 98.80
01:10:01 AM all 0.45 0.01 0.68 0.08 98.78
[paul@RHELv4u3 sa]$
Существуют и другие полезные параметры утилиты sar, такие, как sar -I PROC, позволяющий выводить информацию об обработке запросов прерываний для каждого из обработанных запросов прерываний и для каждого центрального процессора, или sar -r, управляющий обработкой статистических данных, связанных с памятью. Для ознакомления с другими параметрами утилиты sar обратитесь к странице руководства man sar.
19.9. Утилита ntop
Утилита ntop не будет присутствовать в системе после стандартной процедуры установки дистрибутива Red Hat. После запуска данная утилита начнет генерацию подробных отчетов о сетевом трафике, которые доступны в формате html по адресу http://localhost:3000.
19.10. Утилита iftop
Утилита iftop выводит статистическую информацию об использовании пропускной способности определенных сетевых устройств различными соединениями, представленными сокетами. На серверах, работающих под управлением дистрибутива Red Hat, данная утилита также недоступна по умолчанию.
1.91Mb 3.81Mb 5.72Mb 7.63Mb 9.54Mb
--------------|-------------|--------------|-------------|--------|----
laika.local => barry 4.94Kb 6.65Kb 69.9Kb
<= 7.41Kb 16.4Kb 766Kb
laika.local => ik-in-f19.google.com 0b 1.58Kb 14.4Kb
<= 0b 292b 41.0Kb
laika.local => ik-in-f99.google.com 0b 83b 4.01Kb
<= 0b 83b 39.8Kb
laika.local => ug-in-f189.google.com 0b 42b 664b
<= 0b 42b 406b
laika.local => 10.0.0.138 0b 0b 149b
<= 0b 0b 256b
laika.local => 224.0.0.251 0b 0b 86b
<= 0b 0b 0b
laika.local => ik-in-f83.google.com 0b 0b 39b
<= 0b 0b 21b
19.11. Утилита iptraf
Используйте утилиту iptraf для получения вывода с цветовой разметкой, содержащего информацию о проходящем через сетевые карты IP-трафике.
[root@centos65 ~]# iptraf
[root@centos65 ~]# iptraf -i eth0
19.12. Утилита nmon
Другим популярным и распространенным инструментом для отслеживания сетевой активности является утилита nmon.
19.13. Утилита htop
Вы можете использовать утилиту htop вместо утилиты top.
http://rus-linux.net/MyLDP/BOOKS/LSA/ch19.html
|