hostprofi.ru
Подобрать хостинг
Термин·буква I

iotop

краткое определение

iotop — утилита мониторинга дисковой активности Linux, аналогичная top для процессора. Показывает в реальном времени, какие процессы читают с диска и записывают на него, с указанием скорости I/O. Полезна для диагностики нагрузки на диск и выявления проблемных процессов.

iotop — инструмент диагностики ввода-вывода (I/O) в Linux. Показывает список процессов с их текущей дисковой активностью: скоростью чтения (Read) и записи (Write) в КБ/с или МБ/с. Требует прав root или sudo. Устанавливается через пакетный менеджер: apt install iotop.

Как работает

Запуск и основные опции:

iotop                    # интерактивный режим
iotop -o                 # только процессы с активным I/O
iotop -d 2               # обновление каждые 2 секунды
iotop -a                 # суммарный I/O с момента старта

В интерактивном режиме столбцы: TID (thread ID), PRIO (приоритет I/O), USER, DISK READ, DISK WRITE, SWAPIN, IO%, COMMAND. Последний столбец IO% показывает процент времени, которое поток ожидает завершения операции ввода-вывода.

iotop использует интерфейс ядра Linux taskstats для получения статистики I/O отдельных процессов — доступен с ядра 2.6.20 (2007).

Диагностика нагрузки

Типичные сценарии: высокая нагрузка на диск снижает производительность сервера — через iotop определяем виновника. Возможные причины: некорректный MySQL-запрос без индекса читает гигабайты данных, скрипт бэкапа создаёт лишние копии в неподходящее время, вирус/майнер активно пишет на диск, журналирование файловой системы при большом количестве мелких файлов.

История

iotop разработан Гильемом Фромом в 2007 году на Python. Переписан на C в 2014 году для снижения накладных расходов. Активно поддерживается и входит в репозитории всех основных дистрибутивов Linux.

Связь с хостингом

На VPS и выделенных серверах iotop — стандартный инструмент при troubleshooting производительности. При жалобах на медленную работу сайта и высоком I/O wait в top — iotop покажет конкретный процесс, создающий нагрузку. Сопутствующие инструменты: iostat (общая статистика), blktrace (трассировка блочных устройств).

Использование iotop

iotop -o — только активные процессы. iotop -b -n 5 — batch-режим, 5 итераций (для скриптов). Колонки: DISK READ (чтение), DISK WRITE (запись), SWAPIN (swap-операции), IO% (доля времени в I/O ожидании). Процессы сортируются по суммарной I/O нагрузке.

Диагностика дисковых проблем

Высокий IO% у конкретного процесса → нагрузка от него. Высокий SWAPIN → нехватка RAM, система использует swap. iostat -x 2 (sysstat) — статистика по дискам: %util > 80% = диск перегружен. blktrace — детальная трассировка операций для глубокого анализа.

Оптимизация I/O на хостинге

Выявление «тяжёлых» запросов MySQL через slow query log. Вынос tmp-директорий PHP/MySQL на tmpfs (RAM-диск). Планировщик I/O: для SSD — none или mq-deadline (не CFQ). Мониторинг I/O через Netdata с алертами на высокую нагрузку.

Журналирование и I/O

Файловые системы с журналированием (ext4, XFS, ZFS) снижают риск потери данных при сбое питания. XFS: лучше для больших файлов и высокого I/O. ext4: стандарт для системных разделов. ZFS: CoW-семантика + checksumming, но требует больше RAM. Для high-I/O БД-серверов: отдельный раздел XFS с noatime,nodiratime.

Оптимизация I/O для баз данных

PostgreSQL: отдельный tablespace для временных таблиц (temp_tablespaces на faster диск). MySQL: innodb_flush_method=O_DIRECT (обход OS page cache). Scheduler: echo mq-deadline > /sys/block/nvme0n1/queue/scheduler для NVMe. fstrim для SSD в хостинге снижает write amplification.

Другие термины