Мониторинг системы РОСА Linux — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Новая страница: «Данная статья написана в основном для новичков в Linux. Большинство информации, представлен...»)
 
Строка 25: Строка 25:
 
{{cmd|ps}} - отображает список запущенных процессов.
 
{{cmd|ps}} - отображает список запущенных процессов.
  
[[Файл:Monitor3.png|center}}
+
[[Файл:Monitor3.png|center]]
 
        
 
        
  
Строка 32: Строка 32:
 
Так, чтобы просмотреть информацию о всех запущенных в системе процессах можно воспользоваться как
 
Так, чтобы просмотреть информацию о всех запущенных в системе процессах можно воспользоваться как
  
 +
ps -e
  
     
+
ps -ef
  
    ps -e
+
ps -eF
 
        
 
        
 
+
ps -ely
    ps -ef
+
     
+
 
+
    ps -eF
+
     
+
 
+
    ps -ely
+
     
+
 
+
   
+
 
+
  
 
так и
 
так и
  
 +
ps ax
  
     
+
ps axu
  
    ps ax
+
Обычно используется команда {{cmd|ps axu}}. Она выдает практически всю информацию о системе.
     
+
  
    ps axu
+
[[Файл:Monitor4.png|300px|center]][[Файл:Monitor5.png|300px|center]]
     
+
 
+
   
+
 
+
 
+
Обычно используется команда ps axu. Она выдает практически всю информацию о системе.
+
 
+
 
+
     
+
 
+
    serhiy@kubuntu:~$ ps axu
+
     
+
 
+
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
+
     
+
 
+
    root 1 0.0 0.0 2640 564 ? S 10:19 0:00 init [2]
+
     
+
 
+
    root 2 0.0 0.0 0 0 ? S 10:19 0:00 [migration/0]
+
     
+
 
+
    root 3 0.0 0.0 0 0 ? SN 10:19 0:00 [ksoftirqd/0]
+
     
+
 
+
    root 4 0.0 0.0 0 0 ? S 10:19 0:00 [watchdog/0]
+
     
+
 
+
    ................................................
+
     
+
 
+
   
+
  
 
Вывод команды очень большой. Поэтому я привел лишь начало. Если же нужна информация о запущенных Вами процессах - воспользуйтесь.
 
Вывод команды очень большой. Поэтому я привел лишь начало. Если же нужна информация о запущенных Вами процессах - воспользуйтесь.
  
ps cxu
+
ps cxu
     
+
 
+
   
+
  
 
или
 
или
  
ps cx
+
ps cx
 
        
 
        
 +
В первом случае информация будет выведена в более подробном виде. Обычно данную программу запускают для того, чтобы узнать '''PID''' (первая колонка) команды, с последующим ее уничтожением с помощью команды {{cmd|kill -9}}.
  
   
+
= Команда: free =
  
В первом случае информация будет выведена в более подробном виде. Обычно данную программу запускают для того, чтобы узнать PID (первая колонка) команды, с последующим ее уничтожением с помощью команды kill -9.
+
{{cmd|free}} показывает информацию о памяти компьютера, включающей в себя физическую память ('''RAM'''), '''swap''', разделяемую память и буферы, используемые ядром. Вся информация выдается в килобайтах.
  
Команда: free
+
[[Файл:Monitor6.png|center]]
  
'free' показывает информацию о памяти компьютера, включающей в себя физическую память (RAM), swap, разделяемую память и буферы, используемые ядром. Вся информация выдается в килобайтах.
+
В строке '''Mem:''' показано использование физической памяти, в строке '''Swap:''' — использование пространства подкачки, а в строке -/+ buffers/cache: — объем физической памяти, выделенный в настоящее время для буферов системы. Команда free выводит лишь единоразово информацию о задействованной памяти. Для того, чтобы просматривать показатели каждые '''n''' секунд, нужно воспользоваться опцией '''-s n''', где '''n''' - число в секундах. Но это может быть неудобно. Строки пробегают по экрану и человеку тяжело уловить разницу. Поэтому следует воспользоваться командой {{cmd|watch}}:
  
$ free
+
watch free
     
+
  
    total used free shared buffers cached
+
Вы можете менять задержку между обновлениями (по умолчанию 2 сек.) с помощью параметра '''-n''' или сделать так, чтобы любые отличия результатов выделялись, указав параметр '''-d''', как показано в следующей команде:
     
+
  
    Mem: 1028144 1020468 7676 0 16316 379828
+
watch -n 1 -d free
     
+
  
    -/+ buffers/cache: 624324 403820
+
= Команда: du =
     
+
  
    Swap: 530104 21644 508460
+
{{cmd|du}} используется для того, чтобы узнать размер директории
  
В строке Mem: показано использование физической памяти, в строке Swap: — использование пространства подкачки, а в строке -/+ buffers/cache: — объем физической памяти, выделенный в настоящее время для буферов системы. Команда free выводит лишь единоразово информацию о задействованной памяти. Для того, чтобы просматривать показатели каждые n секунд, нужно воспользоваться опцией -s n, где n - число в секундах. Но это может быть неудобно. Строки пробегают по экрану и человеку тяжело уловить разницу. Поэтому следует воспользоваться командой watch:
+
du
  
$watch free
+
[[Файл:Monitor7.png|center]]
     
+
  
   
+
Без дополнительных опций команда {{cmd|du}} выдает список директорий, находящихся в текущей директории, и их размеры. Последняя строка показывает общий размер текущей директории. По умолчанию информация отображается в килобайтах. Во многих случаях это может быть неудобно. Поэтому воспользуемся некоторыми дополнительными опциями.
  
Вы можете менять задержку между обновлениями (по умолчанию 2 сек.) с помощью параметра -n или сделать так, чтобы любые отличия результатов выделялись, указав параметр -d, как показано в следующей команде:
+
du -h /home/pastordi/Видео/
 
+
$watch -n 1 -d free
+
 
        
 
        
 +
[[Файл:Monitor8.png|center]]
  
   
+
Размер всей папки - 2Гб. Опция '''-h''' задает отображение в более удобном виде.
 
+
Команда: du
+
 
+
'du' используется для того, чтобы узнать размер директории
+
 
+
$ du
+
     
+
  
 +
du -ah
 +
 +
[[Файл:Monitor9.png|center]]     
 
      
 
      
 +
С помощью опции ''-a'' можно задать вывод размера каждого файла. Информация о полном размере вложенных папок также выводится.
  
Без дополнительных опций команда du выдает список директорий, находящихся в текущей директории, и их размеры. Последняя строка показывает общий размер текущей директории. По умолчанию информация отображается в килобайтах. Во многих случаях это может быть неудобно. Поэтому воспользуемся некоторыми дополнительными опциями.
+
du -mc /home/pastordi/Видео/ | grep итого
 +
 +
[[Файл:Monitor10.png|center]
  
$ du -h /home/serhiy/pic/
+
Здесь опция '''-m''' задает, чтобы размер выводился в мегабайтах, а '''-c''' добавляет дополнительную строку, показывающую полный размер директории (итого). Таким образом мы можем воспользоваться командой {{cmd|grep}}, чтобы оставить лишь информацию о размере директории {{Источник|/home/pastordi/Видео/. Это будет полезно, если директория содержит много вложенных поддиректорий и файлов, а Вам нужно знать лишь ее полный размер. Хотя это можно сделать и проще:
     
+
  
    4,0M /home/serhiy/pic/from_sky
+
du -s /home/pastordi/Видео/
 
        
 
        
  
    1,1M /home/serhiy/pic/smoke
+
Если же Вам нужно узнать размер директории без входящих в нее директорий, воспользуйтесь опцией '''-S'''.
     
+
  
    11M /home/serhiy/pic/mini_world
+
du -Sh /home/pastordi/Видео/
 
        
 
        
 
    16M /home/serhiy/pic/
 
 
В приведенном примере видно, что папка pic в домашней директории пользователя serhiy содержит три вложенных папки, размерами 4.0, 1.1, и 11 мегабайт. Размер всей папки - 16 Мб. Опция -h задает отображение в более удобном виде.
 
 
$ du -ah
 
     
 
 
   
 
     
 
 
    du -ah /home/serhiy/pic/
 
     
 
 
    148K /home/serhiy/pic/from_sky/1.jpg
 
     
 
 
    144K /home/serhiy/pic/from_sky/2.jpg
 
     
 
 
    168K /home/serhiy/pic/from_sky/3.jpg
 
     
 
 
    100K /home/serhiy/pic/from_sky/4.jpg
 
     
 
 
    ..............................
 
     
 
 
   
 
     
 
 
    136K /home/serhiy/pic/mini_world/mini_world_84.jpg
 
     
 
 
    152K /home/serhiy/pic/mini_world/mini_world_85.jpg
 
     
 
 
    11M /home/serhiy/pic/mini_world
 
     
 
 
    16M /home/serhiy/pic/
 
     
 
 
   
 
 
С помощью опции -a можно задать вывод размера каждого файла. Информация о полном размере вложенных папок также выводится.
 
 
$ du -mc /home/serhiy/pic/ | grep total
 
     
 
 
    16 total
 
     
 
 
   
 
 
Здесь опция -m задает, чтобы размер выводился в мегабайтах, а -c добавляет дополнительную строку, показывающую полный размер директории (total). Таким образом мы можем воспользоваться командой grep, чтобы оставить лишь информацию о размере директории /home/serhiy/pic/. Это будет полезно, если директория содержит много вложенных поддиректорий и файлов, а Вам нужно знать лишь ее полный размер. Хотя это можно сделать и проще:
 
 
$ du -s /home/serhiy/pic/
 
     
 
 
    16028 /home/serhiy/pic/
 
 
Если же Вам нужно узнать размер директории без входящих в нее директорий, воспользуйтесь опцией -S.
 
 
$ du -Sh /home/serhiy/pic/
 
     
 
 
    4,0M /home/serhiy/pic/from_sky
 
     
 
 
    1,1M /home/serhiy/pic/smoke
 
     
 
 
    11M /home/serhiy/pic/mini_world
 
     
 
 
    4,0K /home/serhiy/pic/
 
 
Как видно, директория pic/ содержит три поддиректории и ничего больше. Поэтому ее размер 4,0K.
 
 
Еще один пример из серии исключений:
 
Еще один пример из серии исключений:
  
$ du -h --exclude=*.jpg /home/serhiy/pic/
+
du -h --exclude=*.mov /home/pastordi/Видео/
 
        
 
        
 +
[[Файл:Monitor11.png|center]]
  
    4,0K /home/serhiy/pic/from_sky
+
Опция '''--exclude=*.mov''' - исключает из отображения полной иформации о размере директории {{Источник|/home/pastordi/Видео/}} и ее поддиректории файлы, имеющие в своем названии .mov. Поскольку в указанной директории и поддиректориях находятся лишь изображения в формате .mov, все папки занимают 320Мб. Вместо .mov можно вставить любую последовательность символов.
     
+
 
+
    4,0K /home/serhiy/pic/smoke
+
     
+
 
+
    4,0K /home/serhiy/pic/mini_world
+
     
+
 
+
    16K /home/serhiy/pic/
+
 
+
Опция --exclude=*.jpg - исключает из отображения полной иформации о размере директории /home/serhiy/pic/ и ее поддиректории файлы, имеющие в своем названии .jpg. Поскольку в указанной директории и поддиректориях находятся лишь изображения в формате .jpg, все папки занимают 4,0K. Вместо .jpg можно вставить любую последовательность символов.
+
 
Например:
 
Например:
  

Версия 20:14, 17 сентября 2011

Данная статья написана в основном для новичков в Linux. Большинство информации, представленной здесь, может быть найдено в страницах man. Если Вы опытный пользователь Linux - большинство из написанного здесь Вам должно быть знакомо. Так что можете спокойно переходить к другим статьям или же, если хотите проверить свои знания - можете просмотреть мельком. Но а в случае если Вы являетесь новичком в Linux, если Вам нудно читать страницы man и хочется узнать обо все этом побыстрей - эта статья для Вас.


Команда: top

Это одна из чаще всего используемых комманд раздела мониторинга системы. Команда top предоставляет информацию о запущенных процессах, включая данные об использовании процессом CPU и памяти, пользователях, запустивших процесс и их pid (Process ID), а также о времени, прошедшем с момента запуска процесса. Данные все время обновляются с определенной частотой (по умолчанию 3 сек). Изменить частоту можно нажав клавишу "s" - ввести нужное число - Enter.

Вывод команды top показан ниже:

Monitor1a.png

Вы можете модифицировать вид выводимой информации. Так, нажав "i" можно отключить вывод неработающих процессов. Повторное нажатие "i" вернет все в прежнее положение. "M" - отсортирует по количеству используемой памяти, а "P" - по использованию процессора. Приведенные опции вводились при запущенной команде top. В дополнение к этому, существуют опции, которые можно вводить при запуске команды. Например, с помощью "u" можно задать вывод только процессов, принадлежащих определенному пользователю:

Monitor2a.png

С помощью опции "k" можно убить процесс, а "r" (renice) изменит его приоритет (колонка PR в выводе команды top). Для того, чтобы выйти из программы, нужно нажать клавишу "q".

Для более подробной информации о системных процессах следует обратиться к псевдофайловой системе /proc. Здесь информация о процессах представлена в виде файлов.

Dialog-warning.png
Предупреждение
Будьте осторожны, поскольку это не обычные файлы, а лишь текущее состояние устройства, эти файлы редактировать НЕЛЬЗЯ!

Команда: ps

ps - отображает список запущенных процессов.

Monitor3.png


По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями. Следует заметить, что данная команда может работать как в стандартном виде записи опций (-опция), так и в режиме BSD (знака "-" между командой и опцией нет).

Так, чтобы просмотреть информацию о всех запущенных в системе процессах можно воспользоваться как

ps -e
ps -ef
ps -eF
     
ps -ely

так и

ps ax
ps axu

Обычно используется команда ps axu. Она выдает практически всю информацию о системе.

Monitor4.png
Monitor5.png

Вывод команды очень большой. Поэтому я привел лишь начало. Если же нужна информация о запущенных Вами процессах - воспользуйтесь.

ps cxu

или

ps cx
     

В первом случае информация будет выведена в более подробном виде. Обычно данную программу запускают для того, чтобы узнать PID (первая колонка) команды, с последующим ее уничтожением с помощью команды kill -9.

Команда: free

free показывает информацию о памяти компьютера, включающей в себя физическую память (RAM), swap, разделяемую память и буферы, используемые ядром. Вся информация выдается в килобайтах.

Monitor6.png

В строке Mem: показано использование физической памяти, в строке Swap: — использование пространства подкачки, а в строке -/+ buffers/cache: — объем физической памяти, выделенный в настоящее время для буферов системы. Команда free выводит лишь единоразово информацию о задействованной памяти. Для того, чтобы просматривать показатели каждые n секунд, нужно воспользоваться опцией -s n, где n - число в секундах. Но это может быть неудобно. Строки пробегают по экрану и человеку тяжело уловить разницу. Поэтому следует воспользоваться командой watch:

watch free

Вы можете менять задержку между обновлениями (по умолчанию 2 сек.) с помощью параметра -n или сделать так, чтобы любые отличия результатов выделялись, указав параметр -d, как показано в следующей команде:

watch -n 1 -d free

Команда: du

du используется для того, чтобы узнать размер директории

du
Monitor7.png

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

du -h /home/pastordi/Видео/
     
Monitor8.png

Размер всей папки - 2Гб. Опция -h задает отображение в более удобном виде.

du -ah

Monitor9.png

С помощью опции -a можно задать вывод размера каждого файла. Информация о полном размере вложенных папок также выводится.

du -mc /home/pastordi/Видео/ | grep итого

[[Файл:Monitor10.png|center]

Здесь опция -m задает, чтобы размер выводился в мегабайтах, а -c добавляет дополнительную строку, показывающую полный размер директории (итого). Таким образом мы можем воспользоваться командой grep, чтобы оставить лишь информацию о размере директории {{Источник|/home/pastordi/Видео/. Это будет полезно, если директория содержит много вложенных поддиректорий и файлов, а Вам нужно знать лишь ее полный размер. Хотя это можно сделать и проще:

du -s /home/pastordi/Видео/
     

Если же Вам нужно узнать размер директории без входящих в нее директорий, воспользуйтесь опцией -S.

du -Sh /home/pastordi/Видео/
     

Еще один пример из серии исключений:

du -h --exclude=*.mov /home/pastordi/Видео/
     
Monitor11.png

Опция --exclude=*.mov - исключает из отображения полной иформации о размере директории /home/pastordi/Видео/ и ее поддиректории файлы, имеющие в своем названии .mov. Поскольку в указанной директории и поддиректориях находятся лишь изображения в формате .mov, все папки занимают 320Мб. Вместо .mov можно вставить любую последовательность символов. Например:

serhiy@kubuntu:~/pic/from_sky$ du -h --exclude=1?.jpg


   2,8M .
     
   serhiy@kubuntu:~/pic/from_sky$ du -h
     
   4,0M .

В первом случае я исключил все файлы, состоящие из двух символов, первый из которых 1.

Команда: df

'df' - показывает информацию об использовании дискового пространства.

$ df


   Filesystem 1K-blocks Used Available Use% Mounted on
     
   /dev/sda6 9629880 5732280 3408424 63% /
     
   varrun 514072 112 513960 1% /var/run
     
   varlock 514072 4 514068 1% /var/lock

Вывод команды df состоит из 6 колонок. Fylesystem - физический раздел, Mounted on - точка монтирования этого раздела, 1K-blocks - размер раздела в килобайтах, Used - сколько занято, Available - свободно, Use% - сколько занято места в процентах.

$ df -h



Как и в случае с командой du, опция -h задает вывод в удобном для человека виде. Обычно это мегабайты и гигабайты. (-m - вывести только в мегабайтах) Команда df имеет и другие опции, но большинство пользователей ограничиваются лишь приведенными, поэтому я их рассматривать не буду. Если Вам интересно знать больше. обратитесь к man df.

Если хочется узнать лишь информацию о том, сколько места в процентах используется на заданном диске, то можно воспользоваться утилитами grep и cut.

$ df -h | grep /dev/sda8 | cut -c41-43


   83%

Здесь grep из вывода команды df -h вырезает лишь строку, где встречается /dev/sda8 (на этот раздел у меня примонтирована директория /home), а cut-c41-43 обрезает лишь 41-43 символы строки (именно там находится информация о процентном использовании разделов).

Команда: who

Поскольку операционная система Linux является многопользовательской, количество пользователей компьютера может быть больше чем один. Для того чтобы узнать, кто работает за компьютером в данный момент, и предназначена команда who. Эта команда показывает, кто работает за компьютером, сколько времени прошло с момента, когда он вошел в систему, и когда он это сделал.

$ who


   serhiy tty2 2007-02-04 13:50
     
   root tty3 2007-02-04 13:50
     
   serhiy :0 2007-02-01 10:19

С помощью этой команды можно узнать и информацию о себе:

$ whoami


   serhiy
     




Команда: w

'w' - это собранный воедино вывод команд 'uptime', 'who' и 'ps a' для более подробной информации о системе. Для того, чтобы задать информацию для одного пользователя, а не для всех, допишите имя пользователя к команде:

w serhiy


   14:05:12 up 3 days, 3:46, 1 user, load average: 0,35, 0,32, 0,33
     
   USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
     
   serhiy :0 - Thu10 ?xdm? 9:06 0.09s /bin/sh /usr/bin/startkde
     




Команда: vmstat vmstat - показывает информацию о процессах , виртуальной памяти, физических томах и активности ЦПУ . По умолчанию выдается полный список статистики с момента загрузки системы, что не очень полезно с точки зрения анализа ситуации в данный момент. Поэтому, стоит запускать vmstat с аргументом interval, указанным в секундах.



   $ vmstat 5
     
   procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
     
   r b swpd free buff cache si so bi bo in cs us sy id wa
     
   1 0 21680 22248 16480 416000 0 0 99 45 166 3 3 1 95 1
     
   0 0 21680 21872 16504 415976 0 0 0 34 1250 3087 2 1 98 0
     
   0 0 21680 25388 16520 416436 0 0 96 11 1209 3458 3 1 95 1
     



(вывод может отличаться в зависимости от используемой системы)

Каждая последующая линия показывают параметры системы за предыдущие 5 секунд. Рассмотрим поля вывода команды vmstat:

procs - число процессов, которые: r - находятся в очереди на выполнение; b - заблокированы в ожидании ресурсов.

memory - информация о памяти: swpd - количество используемой виртуальной памяти; free - незадействованная память; buff - количество памяти, используемой в качестве буфера, cache - в качестве кэш.

swap: si - количество свап-памяти взятой с диска, so - записанной на диск (/s).

IO: bi - количество блоков взятых с блочного устройства (жесткий диск), b0 - отправленных на блочное устройство.

System: in - количество прерываний за секунду, cs - количество контекстных переключений за секунду.

CPU: процент цикла процессора, затрачиваемый на различные режимы: us - пользователь; sy - система; id - ожидание; wa - ввод/вывод.

Команда: iostat (входит в пакет sysstat). iostat (input/output statistics) - без аргументов показывает краткую статистику использования процессора и дисковых операций ввода/вывода:

$ iostat


   Linux 2.6.15-23-amd64-generic (kubuntu) 21.02.2007
     



   avg-cpu: %user %nice %system %iowait %steal %idle
     
    1,64 0,87 0,84 1,33 0,00 95,32
     



   Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
     
   hda 0,00 0,00 0,00 152 0
     
   sda 9,97 399,79 182,30 18796197 8570744
     



В первой строке представлены версия ядра системы, имя узла и текущая дата. Во второй - усредненная информация использования процессора после загрузки системы. В поле Device - данные использования дисковых устройств (hda и sda):

tps - число операций передачи данных (или операций ввода/вывода) в секунду; Blk_read/s - число блоков (обычно 512 байт), прочитанных за секунду; Blk_wrtn/s - число блоков, записанных за секунду; Blk_read - общее число прочитанных блоков; Blk_wrtn - общее число записанных блоков.

Если Вам не удобно возиться с блоками, можете воспользоваться ключами -k - для отображения в килобайтах и -m - мегабайтах.

Надеюсь, данный обзор поможет Вам быстро освоиться с работой с основными командами по мониторингу системы Linux. Конечно, здесь рассмотрены не все программы из этой области, но я надеюсь, что для новичка в Linux этого будет вполне достаточно.