Установка для debian
1 2 |
apt-get update apt-get install htop iotop nethogs virt-top |
Top — потребление ресурсов процессора, памяти, менеджер процессов \ top
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Top - выводит информацию в реальном времени о запущенных процессах. Htop - продвинутая версия top, ставится из репозиториев. top - отображает общий/используемый объем памяти, загрузка ЦП h - помощь Z - задать раскраску z - вкл \ выкл раскраски E - отображение выводимой инфы Гб, Мб и т.д. в шапке e - отображение выводимой инфы Гб, Мб и т.д. в списке процессов l,t,m - изменить отображение шапки d или s - интервал обновления 0,1,2,3,4,I - изменение отображения колонки CPU R - переключение сортировки от большего к меньшему или наоборот >,< - переключение сортировки по колонкам M - сортировка по самым прожорливым процессам V - показать процессы в виде дерева (родитель потомок) с - показать путь до исполняемого файла n - число максимального кол-во показываемых процессов u - [username] Показывает процессы принадлежащие пользователю username k - [pid] Убить процесс с pid r - [pid] renice приоритет (-20 до 20 ) Флаги '-q' и '-u' очень полезны в тех случаях, когда нагрузка на систему столь велика, что top не в состоянии быстро загрузиться. s - показывать системные процессы (команда s) i - не показывать спящие процессы (команда i) t - не показывать самого себя (команда t) mcpu - статистика cpu mio - статистика ввода/вывода (команда m) q - установить процессу top наивысший приоритет u - показывать uid вместо имени пользователя s - временной промежуток между обновлениями (команда s, значение по умолчанию - 2) u - показывать процессы только данного юзера (команда u) q - Выход top -s -i -n 4 - покажет самые активные процессы top -d 5 - покажет процессы ( и будет обновлять результат каждые 5 сек (по умолчанию 3 сек)) top -u root - будет показывать процессы пользователя root top -p 190,2690 - будет отображать процессы с PID 190 и 2690 top -n 10 - после десяти обновления завершает выполнение команды top -b - режим без вывода на экрана top -b -n 12000 > myprocess.log - фиксировать информацию о процессах в течении 10 часов и записывать в логических |
htop — потребление ресурсов процессора, памяти
Использование:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
Управление: F1 - справка F2 - настройки F3 - поиск процесса F4 - сортировка списка процессов (от большего к меньшему или от меньшего к большему) F5 - устанавливает древовидное отображение (корни - родительские процессы, а листья - дочерние) и наоборот F6 - открывает панель с выбором параметра сортировки процессов F7 - увеличить приоритет выполнения текущего процесса F8 - уменьшить приоритет выполнения текущего процесса F9 - убить процесс F10 - выйти из программы. Столбцы: PID - идентификатор процесса. USER - владелец процесса. PRI - текуший приоритет (значение по умолчанию - 20; чем меньше приоритет, следовательно он выполняется быстрее) NI - величина изменения приоритета относительно значения PRI (клавиши F7, F8). VIRT - общий объем виртуальной памяти, используемой процессом DATA - объем памяти, занятой данными, используемыми процессом в ходе выполнения. SWAP - объем памяти, используемой процессом, но перемещенной в swap-область. RES - количество резидентной (не перемещаемой в swap) памяти в килобайтах. SHR - количество разделяемой (shared) памяти программы в килобайтах, т.е. памяти, которая может быть использована другими приложениями. S - состояние процесса: S — так называемое состояние сна; R — состояние выполнения; D — состояние ожидания. CPU% - использование процессора в процентном отношении. MEM% - использование процессом памяти в процентном отношении. TIME+ - время работы процесса. Command - указывает на команду, которой был запущен процесс. Через настройки (F2) можно добавить еще некоторые полезные параметры: IO RATE - Операции ввода\вывода. Чтение + запись. Если нужно отдельно на чтение и на запись, то можно добавить: IO READ RATE и IO WRITE RATE. Также на экран выводятся следующие параметры: Load average - отражает число блокирующих процессов в очереди. (1 минута, 5 минут и 15 минут) Блокирующий процесс — это процесс, который ожидает ресурсов для продолжения работы. Uptime - время работы системы. Ускорить или замедлить частоту обновления htop: sudo htop -d 1 - чтобы программа обновляла окно каждую 1/10 секунды sudo htop -d 50 - чтобы программа выводила новые данные раз в 5 секунд Вывести процессы в виде дерева: htop -t Перемещение по списку процессов в htop: Вы можете использовать курсорные клавиши для прокрутки списка процессов. Также работают клавиши PgUp, PgDn для прокрутки окна. Кнопка Home перенесёт к началу списка. Кнопка End прокрутит список до конца. Ctrl-a или ^ - прокрутка к началу пункта (началу строки). Ctrl-e или $ - прокрутка к концу пункта записи о процессе (то есть концу строки). Как в htop отсортировать по потреблению памяти, как выбрать поле для сортировки: Нажмите клавишу F6 для выбора поля, которое вы хотите использовать для сортировки. Для переключения к обратному порядку сортировки используйте кнопку I (Shift+i). При повторном нажатии список вновь будет отсортирован в обратном порядке. Cвернуть ветки дерева процессов в htop: В режиме дерева процессов выберите ветку дерева, которую вы хотите свернуть и нажмите F6. Поиск и фильтрация процессов в htop: Поиск отличается от фильтрации тем, что найденные процессы показываются наравне с остальными, и между найденными процессами можно переключаться кнопкой F3. При фильтрации на экран будут выводиться только процессы, соответствующие введённой строке. Для перехода к поиску по процессам нажмите F3 или /. Для переключения между найденными процессами нажимайте F3. Для фильтрации процессов нажмите F4 или \ начните вводить имя процесса. Для очистки фильтра вновь нажмите F4 и затем Esc. Как выбрать один или несколько процессов в htop: Для выбора процессов используйте Пробел. После этого введённые команды, такие как kill или изменение приоритета, могут применяться к группе выделенных процессов вместо подсвеченного в данный момент. Для снятия выделения со всех процессов нажмите U (Shift+u). Как закрыть процесс в htop: Для закрытия процесса выберите один или несколько процессов и нажмите F9 или k. Выбранному процессу будет отправлен сигнал завершения. Если не отмечен ни один процесс, то будет закрыть тот, на котором находиться в данный момент курсор. Как показать файлы, которые использует процесс: Если вы хотите увидеть файлы, открытые процессом, то выделите интересующий вас процесс и нажмите кнопку l (маленькая латинская L). Чтобы эта функция работала, в системе должны быть установлена утилита lsof. Как изменить внешний вид htop: Для изменения внешнего вида — панели с информацией о системе, выводимых столбцах и прочем, нажмите кнопку F2 или S (Shift+s). Указать поле для сортировки при запуске htop: htop -s PERCENT_MEM htop --sort-key help Показать только процессы определённого пользователя: htop -u ПОЛЬЗОВАТЕЛЬ htop -u mial Показать только процесс с определённым номером: Через запятую вы можете перечислить один или более идентификаторов процессов. Только эти процессы будут показаны в окне htop. htop -p PID,PID…. Трассировка системных вызовов: Вы можете проследить, какие системные вызовы сделал процесс. Для этого выберите интересующий вас процесс и нажмите кнопку s. Для работы этой функции у вас должна быть установлена утилита strace. |
Память
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
free -h - количество памяти и swap cat /proc/meminfo - информация о памяти head -2 /proc/slabinfo; cat /proc/slabinfo | egrep dentry\|inode - просмотреть различную кэш память и узнать ее размеры vmstat 5 5 - информация использовании памяти за период времени swapoff -a - отключаем swap вообще прямо в работающей системе swapon -a - включаем обратно swap swapon -s - показывает источники и использование swap ----------------------------------------------------- MemTotal - Всего памяти MemFree - Свободная память Cached - Страничный кэш в системе Linux ("Cached:" в meminfo) является в большинстве систем самым крупным потребителем памяти. Каждый раз, когда вы выполняете операцию чтения read () из файла, расположенного на диске, данные считываются в память и помещаются в страничный кэш. После того, как операция read() завершается, ядро может просто выбросить страницу памяти, так как она не используется. Однако, если вы второй раз выполняете операцию чтения той же самой части файла, данные будут считываться непосредственно из памяти и обращения к диску не будет. Это невероятно ускоряет работу и, поэтому, в Linux так интенсивно используется кэширование страниц: ставка делается на то, что если вы обратились к некоторой странице дисковой памяти, то вскоре вы обратитесь к ней снова. dentry/inode caches - Каждый раз, когда вы в файловой системе выполняете операцию "ls’" (или любую другую операцию: open(), stat() и т.д.), ядру требуются данные, которые находятся на диске. Ядро анализирует эти данные, находящиеся на диске, и помещает его в некоторых структуры данных, независимые от файловой системы, с тем, чтобы они могли в различных файловых системах обрабатываться одним и тем же образом. Таким же самым образом, как кэширование страниц в приведенных выше примерах, ядро может после того, как будет завершена команда "ls", стереть эти структуры. Тем не менее, делается такое же предположение, как и раньше: если вы однажды считали эти данные, вы обязательно прочитаете их еще раз. Ядро хранит эту информацию в нескольких местах "кэша", которые называются кэш памятью dentry и inode. Кэш память dentries являются общей для всех файловых систем, но каждая файловая система имеет свой собственный кэш inodes. Buffer Cache - Кэш буфера ("Buffers:" в meminfo) является близким родственником кэш памяти dentry/inode. Данные dentries и inodes, размещаемые в памяти, представляют собой описание структур на диске, но располагаются они по-разному. Это, возможно, связано с тем, что у нас в копии, расположенной в памяти, используется такая структура, как указатель, но на диске ее нет. Может также случиться, что на диске байты будут располагаться не в том порядке, как это нужно процессору. Подкачка памяти - swap Как только ядро принимает решение, что ему не требуется получать память из каких-либо других источников, которые мы описывали ранее, оно запускает память подкачки swap. В ходе этого процесса оно получает данные пользовательских приложений и записывает их в специальное место (или места) на диске. Обратите внимание, что это происходит не только тогда, когда оперативная память близка к заполнению, ядро может принять решение перенести в память swap также данные, находящиеся в оперативной памяти, если они некоторое время не использовались (смотрите раздел "Подкачка памяти"). ---------------------------------------------------- nano /etc/sysctl.conf vm.swappiness=10 - начинать использовать swap когда осталось 10% памяти (0 не использовать swap) vm.vfs_cache_pressure=100 - использовать память (чем меньше тем чаще используется swap) (при 1000 буде использоваться оперативная память) sysctl -p - применить настройки сразу без перезагрузки ---------------------------------------------------- |
iotop — активность дисковой системы
Использование:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
iotop -o - будут выведены наиболее активные процессы iotop -o -b - ставим эту программу минут на 10 и смотрим, что же за эти 10 минут произошло iotop -botqqqk --iter=60 >> /var/log/iotop - записывать в лог iotop -botqqqk --iter=60 | grep -P "dd.dd K/s" >> /var/log/iotop - записывать только те процессы, которые генерируют более 10 КБ/ tail /var/log/iotop - смотрим результаты less /var/log/iotop - смотрим результаты Ключи: -o – отображать только процессы, которые в данный момент выполняют операции I/O с диском -b – отключить интерактивный режим (например – для логгирования) -n – задать число выполнения проверок перед выходом -d – интервал (секунды) между проверками -p – PID процесса, который надо отслеживать -u – имя пользователя, которого надо отслеживать -P – отображать только процессы (по-умолчанию – все процессы и потоки) -k – отображать инфомрацию в KB -t – добавить отображение времени выполнения проверки -q (-qq, -qqq) – уменьшить количество выводимой информации Расшифровка параметров TID - ID процесса, его же можно посмотреть в ps auxf PRIO - приоритет процесса USER - имя пользователя, от которого запущен процесс DISK READ - скорость чтения с диска DISK WRITE - скорость записи на диск SWAPIN - процент в свап IO - процент напрямую COMMAND - команда, которая “безобразничает” и которую так долго искали |
nethogs — сетевая активность
1 2 |
Наглядная демонстрация кто сожрал канал. Единицы измерения можно изменить с помощью клавиши "m" |
netstat — сетевая активность
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
netstat -a - перечислить все порты netstat -at - перечислить все TCP порты netstat -au - перечислить все UDP порты netstat -l - перечислить все прослушиваемые порты (состоянии LISTEN) netstat -lt - перечислить прослушиваемые TCP порты (состоянии LISTEN) netstat -lu - перечислить прослушиваемые UDP порты (состоянии LISTEN) netstat -lx - перечислить прослушиваемые UNIX сокеты (состоянии LISTEN) netstat -s - показать статистику всех портов netstat -st - показать статистику только TCP портов netstat -su - оказать статистику только UDP портов netstat -p - отображение PID и имени процесса в выводе netstat netstat -an - ключ n отключает разрешение имён в выводе netstat -c - вывод информации netstat непрерывно (как top,htop) netstat -r - таблица маршрутизация ядра netstat -ap | grep ssh - соответствие портов и процессов (ssh) netstat -an | grep ':80' - соответствие портов и процессов (порт 80) netstat -i - показать список сетевых интерфейсов Полезная команда: netstat -lnptux -l все открытые порты (LISTEN) -t по протоколу TCP -u по протоколу UDP -x по протоколу UNIX Socket -n без резолва IP/имён -p но с названиями процессов и PID-ами Полезная команда: netstat -tulpan |
virt-top — Мониторинг виртуальных машин на kvm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
S — состояние виртуальной машины. R — Для запущенных RDRQ/WRRQ — дисковое i/o RXBY/TXBY — i/o сети Клавиши: 1 - переключимся в режим отображения по процессорам (по ядрам процессора). 2 - просмотрим текущий i/o на различных виртуальных сетевых интерфейсах (vnetX, например). 3 - просмотрим текущий i/o по виртуальным дисковым устройствам Запись в файл: virt-top --csv file.csv - для того, что бы virt-top писал свои данные в файл virt-top --csv file.csv -d 1 - заставим писать статистику каждую секунду, а не 3 virt-top --csv file.csv -d 1 --script - выключим отображение основного интерфейса virt-top |