Подозрение на диск
Вопрос
Есть подозрение, что сервер упирается в диск. Как подтвердишь и найдёшь виновника?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Признаки: высокий `wa`, процессы в состоянии `D`, load выше нагрузки CPU
`iostat -xz 1`: `r_await`/`w_await`, очередь `aqu-sz`, IOPS и пропускная способность
`%util` для SSD/NVMe читаю осторожно, смотрю на задержки
Кто пишет: `iotop`, `pidstat -d 1`
Причины: своп, логирование, бэкап или compaction, нехватка page cache, лимит IOPS облачного диска
Решения: убрать лишнюю запись, ionice для фоновых задач, больше памяти под кеш, диск быстрее
Что могут спросить следом
- Как своп связан с диском?
- Что такое лимит IOPS у облачного диска?
Разбор
Косвенные признаки: в top высокий wa, в vmstat растёт колонка b, процессы в состоянии D, а load выше, чем объясняет загрузка CPU. Подтверждаю iostat -xz 1: смотрю задержки r_await и w_await и среднюю очередь. Для HDD и десятки миллисекунд нормальны, для NVMe и единицы уже тревожно. %util у SSD не показатель насыщения, они параллельные. Дальше ищу, кто пишет: iotop или pidstat -d 1. Частые виновники: своп при нехватке памяти, болтливое логирование, бэкап или vacuum в базе по расписанию, маленький page cache, из-за которого чтения идут на диск, и в облаке исчерпанный лимит IOPS или пропускной способности тома. Лечение зависит от причины: убрать лишнюю запись, запускать фоновые задачи с ionice -c3, добавить память, взять более быстрый диск или поднять лимиты тома.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.