free
Возвращает информацию о свободной и используемой памяти в системе, как физической, так и виртуальной. Физическая память - реальный объем оперативной памяти, виртуальная - часть диска, использующаяся как продолжение физической памяти. Виртуальная память = swap область на диске.
Пример вывода
#free
total used free shared buffers cached
Mem: 516588 480172 36416 0 5524 75704
-/+ buffers/cache: 398944 117644
Swap: 1975976 70200 1905776
- total - всего доступной физической памяти. Некоторая область оперативной памяти может быть зарезервирована ядром, поэтому показатель total может быть меньше реального объема оперативной памяти.
- used - используется памяти (used=total-free)
- free - незадействованая память. На самом деле память задействованная в кэшах(cached) тоже является свободной и может быть использована в любое время, если есть на то нужда какого-то процесса. Работает принцип "свободная память - потерянная память".
- shared - память распределенная между процессами, но по непонятной причине всегда показывает 0.
- buffers - память используемая в буферах.
- cached - память используемая для кэширования.
- -/+ buffers/cache - использованная память без учета буферов и кэшей/свободная память с учётом буферов и кэшей
- swap - использование swap-области
pmap
Возвращает карту памяти указанного процесса. Ключ -d выводит значение используемой writeable/private-памяти - памяти, которую занимает сам процесс, исключая использование общих(shared)-библиотек.
ps
Выводит список текущих процессов. Много полезной информации выводится с ключами aux. Ключ f показывает процессы с ветвлением от родителей.
Столбцы :
- UID - идентификатор пользователя;
- PID - идентификатор процесса
- PPID - идентификатор родительского процесса. Родителем всех процессов является процесс init с PID равной 1
- C - приоритет процесса, используемый планировщиком задач;
- STIME - время старта процесса;
- TTY - терминал, с которым связан данный процесс;
- TIME - общее время работы процесса;
- CMD - команда, запустившая данный процесс «с некоторыми опциями выводит и каталог откуда процесс был запущен»;
- STAT - состояние, в котором на данный момент находится процесс.
- R - процесс выполняется в данный момент
- S - процесс ожидает выполнение ("спит" менее 20 секунд)
- D - процесс в полной (непрерываемой) спячке, например, ожидает ввода/вывода
- Z - zombie или defunct процесс, то есть процесс у которого нет родителя.
- T - процесс остановлен.
- W - процесс в свопе
- < - процесс в приоритетном режиме.
- N - процесс в режиме низкого приоритета
- L - real-time процесс, имеются страницы заблокированные в памяти.
- D – процесс находится в ожидании дисковой (непрерываемой) операции
- I – процесс в ожидающем режиме (процесс "спит" более 20 секунд)
- J – процесс в "тюрьме" (см. man 2 jail)
+ показывает что процесс выполняются на переднем плане (foreground-процессы), s говорит о том, что процесс является начальным в сеансе.sysctl
Модифицирует параметры ядра во время его работы. Полезна, если необходимо изменить какие-то переменные ядра, без перезагрузки и перекомпиляции.
tload
Отображает график загрузки системы(load average). График выводится с заданной задержкой на терминал в виде столбиков.
top
Отображает загрузку процессора. Используется для слежения за активностью процессора в реальном времени.
Полезные команды:
- c - Включает/выключает отображение имени программы/полной командной строки в поле COMMAND
- x - Включает/выключает подсветку колонки, по которой происходит сортировка процессов
- <,> - сортировка по выбранному столбцу
- z - Включает/выключает цвет
- u - показать процессы указанного пользователя
- Пробел - Заставляет программу перечитать список процессов
- us - процент использования процессорного времени программами пользователей.
- sy - процент использования процессорного времени процессами ядра.
- ni - процент использования процессорного времени программами с измененным приоритетом.
- id - простой процессора.
- wa - процент процессорного времени, потраченного на завершение ввода/вывода(IO)
- hi - процент процессорного времени, потраченного на обработку hard-прерываний (IRQ)
- si - процент процессорного времени, потраченного на обработку soft-прерываний (network)
- VIRT — общий объем виртуальной памяти, используемой процессом, включает в себя: область кода (CODE), данные (DATA), разделяемые библиотеки (SHARED) и страницы, перемещенные в swap-область памяти. Если приложение потребовало от ядра выделить ему 100Мб памяти, а использует всего 5 Мб, данный столбец всё равно будет показывать цифру 100.
- RES — количество резидентной (не перемещаемой в swap) памяти в килобайтах. Если приложение потребовало от ядра выделить ему 100Мб памяти, а использует всего 5 Мб, то данный столбец покажет 5. Но здесь есть два ньюанса: а) RES не показывает сколько данных было перемещено в swap, б) часть RES-памяти может быть разделяемой.
- SHR — количество разделяемой (shared) памяти программы в килобайтах, т.е. памяти, которая может быть использована другими приложениями.
- DATA - объем памяти, занятой данными, используемые процессом в ходе выполнения.
- SWAP - объем памяти, используемой процессом, но перемещенной в swap-область.
- CODE - объем памяти, содержащая исполняемый код процесса.
Все остальные столбцы аналогичны столбцам команды ps.
Кроме интерактивного режима, в котором top выводит данные на экран, можно использовать так называемый командный режим (Batch mode). Он применяется, когда результаты работы программы необходимо передать другим программам или сохранить в файле.
Для запуска программы в командном режиме используют параметр –b. В этом случае список отсортированных процессов (по умолчанию, процессы сортируются по проценту использования процессорного времени) будет с определенной задержкой (по умолчанию три секунды) выводится на стандартный вывод. Количество повторов не ограничено, поэтому необходимо явно завершать работу программы, например, при помощь комбинации клавиш Ctrl+C.
- n - количество повторов.
- d - задержка между повторами в секундах.
- u - определяет пользователя, с правами которого выполняются процессы.
- p - определяет PID процессов, за которыми должна следить программа.
#top -b -d 4 -n 3 -u daemon
top - 17:28:22 up 34 min, 1 user, load average: 0.15, 0.05, 0.03
Tasks: 66 total, 1 running, 65 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.1% us, 0.6% sy, 0.0% ni, 91.7% id, 5.5% wa, 0.1% hi, 0.0% si
Mem: 246832k total, 242968k used, 3864k free, 2708k buffers
Swap: 514072k total, 0k used, 514072k free, 107936k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3753 daemon 16 0 4972 2616 1940 S 0.0 1.1 0:00.01 named
3787 daemon 16 0 1684 688 584 S 0.0 0.3 0:00.00 atd
top - 17:28:26 up 34 min, 1 user, load average: 0.13, 0.05, 0.03
Tasks: 66 total, 1 running, 65 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.8% us, 0.0% sy, 0.0% ni, 99.0% id, 0.0% wa, 0.2% hi, 0.0% si
Mem: 246832k total, 242928k used, 3904k free, 2708k buffers
Swap: 514072k total, 0k used, 514072k free, 107936k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3753 daemon 16 0 4972 2616 1940 S 0.0 1.1 0:00.01 named
3787 daemon 16 0 1684 688 584 S 0.0 0.3 0:00.00 atd
uptime
Возвращает время работы системы, количество вошедших в нее пользователей и загрузку системы. Всё то же самое выводит в реальном времени команда top, но top "ест" больше ресурсов.
vmstat
Отображает статистику виртуальной памяти, включая информацию о процессах, памяти, страницах, блоках ввода-вывода, прерываниях и активности CPU. В отчете, выдаваемом по умолчанию, имеются следующие поля:
procs - число процессов, которые:
b - заблокированы в ожидании ресурсов, например, пока закончатся дисковые операции ввода/вывода или paging;
w - выключены из обмена. Эти значения всегда отражают текущую ситуацию, если даже высвечивается полная информация с момента загрузки.
free - размер свободной памяти
buff - объем памяти, задействованной в буферах
cache - объем памяти, задействованной на кэширование
so - число выгруженных процессов.
bo - послано блоков на блочное устройство (блоков/сек)
cs - число переключений(в секунду) контекста.
sy - система
id - ожидание
wa - операции i/o(ввода/вывода). До Linux 2.5.41 показывала 0.
Литература: