Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Ищите систему мониторинга производительности Linux-серверов? Попробуйте уже имеющийся в системе команды, а также те, которые можно добавить. Большинство современных linux-систем уже оснащены кучей всевозможных программ для мониторинга. Эти инструменты предоставляют возможность для получения информации о деятельности системы. Вы можете использовать эти инструменты для поиска причин проблем возникающих в производительности системы.

Команды, приведённые ниже, являются самыми основными, когда речь идет о системе анализа и отладки сервера, а также таких вопросов, как:

  • Выявление "узких мест"
  • "Узкие места" в дисках (хранилищах)
  • "Узкие места" в процессорах и памяти
  • "Узкие места" в сети

 

1. Top - команда активности процессов

Команда top показывает нам динамически и в режиме реального времени вид работающей системы, т.е. активность запущенных системных процессов. По умолчанию, нам показывается большинство активных процессорных задач на сервере в виде листа, обновляющегося каждые 5 секунд.

Наиболее используемые ключи

Команда top имеет несколько полезных ключей:

 

-b "Пакетный режим", используется для отправки вывода в другую программу или в файл.

-u Мониторинг процессов запущенных от имени конкретного пользователя.

-P Мониторинг только указанных процессов. Процессы указываются по их идентификационному номеру (PID).

-s Безопасный режим. Top стартует в принудительном безопасном режим, даже для суперпользователя. Этот режим лучше всего контролируется через     систему конфигурационного файла. Более подробную информацию можно посмотреть с помощью команды man top.

 

2. Vmstat - активность системы, информация о "железе" и системе.

 

Команда vmstat выводит информацию о процессах, памяти, страничном обмен, блокировке ввода-вывода, ловушках и активности процессора.

 

# vmstat -S M

 

Вывод команды:

 

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
1  0      0    909    116    487    0    0    37    20  241  708 12  1 86  1

Где, первая строка показывает 6 категорий, вторая - это более подробная информация о каждой из категорий.

-S M - единицы измерения по вашему выбору (k, K, m, M), по умолчанию - это K (1024 байта). В данном примере используется M, т.к. система имеет более 4Гб оперативной памяти. Без ключа -M как единица измерения будет использоваться K

 

3. W - находит кто в данный момент залогинен в системе и что он делает.

 

Команда w выводит информацию о пользователях, залогиненных в данный момент в системе, и их процессах, а также сколько времени они залогинены и с какого хоста они подключились к системе (если это удалённые пользователи)

 

# w user

 

Вывод команды:

 

16:59:51 up  1:11,  2 users,  load average: 0,16, 0,35, 0,36
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user :0       -                15:51   ?xdm?  19:21   0.01s /bin/sh /usr/bin/x-session-manager
user pts/0    :0               15:51    1:08m  0.00s  0.01s /usr/bin/kwrited

 

4. Uptime - говорит нам как долго работает система без перезагрузки.

 

Команда uptime используется для получения информации о времени (дней, часов, минут и секунд) безостановочной работы сервера, а также с её помощью можно узнать текущее время, какое количество пользователей залогинено на сервере в данный момент.

 

# uptime

 

Вывод команды:

 

17:44:06 up 17 days,  4:18,  1 user,  load average: 0.03, 0.02, 0.00

 

5. Ps - показывает процессы.

 

Команда ps выводит список текщих процессов. Для выбора всех процессов необходимо использовать ключи -A или -s. Команда ps очень похожа на команду top, только выдаёт больше информации.

 

Вывод команды:

 

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 -Al - показывает вывод в длинном формате

# ps -AlF - вывод в наиболее длинном формате.

# ps -AlFH - просмотр треда

# ps -AlLm - просмотр треда после процесса

# ps ax или ps axu - печать всех процессов на сервере.

# pstree - печать дерева процессов.

# ps axZ - печать системы безопасности.

# ps -U user -u user u - посмотреть ве процессы запущенные пользователем user.

# ps -C kopete -o pid= или pgrep kopete - узнать PID процесса kopete.

# ps -p 3674 -o comm= - узнать название процесса, зная PID.

# ps -auxf | sort -nr -k 4 | head -10 - просмотреть первые 10 процессов в памяти.

# ps -auxf | sort -nr -k 3 | head -10 - просмотреть первые 10 CPU-процессов.

 

6. Free - использование памяти.

Команда free показывает общую сумму свободной и используемой физической и своп-памяти, а также как буферы используют ядро.

 

# free

 

Вывод команды:

total       used       free     shared    buffers     cached
Mem:       2061400    1443856     617544          0     133316     832268
-/+ buffers/cache:     478272    1583128
Swap:      1188768          0    1188768

 

# free -b - вывести общую сумму в байтах.

# free -k - вывести общую сумму в килобайтах.

# free -m - вывести общую сумму в мегабайтах.

# free -t -  вывод общих показателей.

 

7. Iostat - средняя загрузка процессора, активность диска.

 

Вывод команды:

 

Linux 2.6.28-13-generic (base)  07.07.2009      _i686_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
17,36    0,65    5,36    1,22    0,00   75,53

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               7,06       209,10       138,47    1693301    1121352
sda1              6,91       208,84       138,47    1691216    1121352
sda2              0,00         0,00         0,00          6          0
sda5              0,01         0,22         0,00       1759          0
sdb               0,01         0,40         0,00       3244          0
sdb1              0,00         0,34         0,00       2748          0

 

8. Sar - сбор и вывод в отчёт системную активность.

 

Команда sar используется для сбора, отчётов и сохранения информации о системной активности. Для просмотра счётчика сети введите:

 

# sar -n DEV | more

 

Для просмотра счётчика за последние 24 часа введите:

 

# sar -n DEV -f /var/log/sa24 | more

 

Для просмотра информации в реальном времени используйте:

 

# sar 4 5

 

 

Вывод команды:

 

Linux 2.6.28-13-generic (base)  08.07.2009      _i686_  (2 CPU)

00:13:25        CPU     %user     %nice   %system   %iowait    %steal     %idle
00:13:29        all     13,54      0,00      7,12      0,47      0,00     78,88
00:13:33        all     12,81      0,00      5,82      0,23      0,00     81,14
00:13:37        all     12,09      0,00      7,16      0,00      0,00     80,75
00:13:41        all     11,67      0,00      7,09      0,00      0,00     81,24
00:13:45        all     15,98      0,11      6,90      0,00      0,00     77,01
Среднее:     all     13,22      0,02      6,82      0,14      0,00     79,80

 

9. Mpstat - многопроцессорное использование.

 

Команда mpstat отображает активность для кажого доступного процессора. Процессор 0 является первым. mpstat -P ALL показывает среднее значение нагрузки на все процессоры.

 

# mpstat -P ALL

 

Вывод команды:

 

Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009

06:48:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
06:48:11 PM all 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80
06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91
06:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98
06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75
06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89

 

10. Pmap- процессы использующие память.

Команда pmap выводит карту процессов загруженных в память компьютера. Используется для поиска причин возникновения "узких мест".

 

# pmap -d PID

 

Для просмотра процесса в памяти с PID # 47394 введите:

 

# pmap -d 47394

 

Вывод команды:

 

47394: /usr/bin/php-cgi
Address Kbytes Mode Offset Device Mapping
0000000000400000 2584 r-x-- 0000000000000000 008:00002 php-cgi
0000000000886000 140 rw--- 0000000000286000 008:00002 php-cgi
00000000008a9000 52 rw--- 00000000008a9000 000:00000 [ anon ]
0000000000aa8000 76 rw--- 00000000002a8000 008:00002 php-cgi
000000000f678000 1980 rw--- 000000000f678000 000:00000 [ anon ]
000000314a600000 112 r-x-- 0000000000000000 008:00002 ld-2.5.so
000000314a81b000 4 r---- 000000000001b000 008:00002 ld-2.5.so
000000314a81c000 4 rw--- 000000000001c000 008:00002 ld-2.5.so
000000314aa00000 1328 r-x-- 0000000000000000 008:00002 libc-2.5.so
000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so
.....
......
..
00002af8d48fd000 4 rw--- 0000000000006000 008:00002 xsl.so
00002af8d490c000 40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000 4 r---- 0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000 4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009 zero (deleted)
00007fffc95fe000 84 rw--- 00007ffffffea000 000:00000 [ stack ]
ffffffffff600000 8192 ----- 0000000000000000 000:00000 [ anon ]
mapped: 933712K writeable/private: 4304K shared: 768000K

 

Последняя строка в этом выводе очень важна:

mapped: 933712K общая сумма файлов в памяти

writeable/private: 4304K сумма общего адресного пространства

shared: 768000K сумма адресного пространства этого процесса вместе со всеми остальными процессами

 

11. Netstat - проверка конфигурации сети и её активности.

 

На самом деле netstat - это набор нескольких инструментов собранных воедино.

 

-n выводит список IP-адресов (а не символических хостов и названий сетей) с которыми в данный момент имеется активное соединение. Особенно полезно если вы не хотите избежать поиска адреса в вашей сети (т.е. из DNS или NIS-серверов). Другими словами, чтобы ваш запрос не резольвился DNS-сервером.

 

-r выводит таблицу маршрутизации

 

-i выводит таблицу ваших сетевых интерфейсов.

 

-s выводит подробную статистику сети (как SNMP)

 

# netstat -ta

 

Вывод команды:

Active Internet Connections
Proto Recv-Q Send-Q Local Address Foreign Address (State)
tcp 0 0 *:domain *:* LISTEN
tcp 0 0 *:time *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 vlager:smtp vstout:1040 ESTABLISHED
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 localhost:1046 vbardolino:telnet ESTABLISHED
tcp 0 0 *:chargen *:* LISTEN
tcp 0 0 *:daytime *:* LISTEN
tcp 0 0 *:discard *:* LISTEN
tcp 0 0 *:echo *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:login *:* LISTEN