Магия LA

Продолжаем тему вопросов на собеседовании. Очень часто я спрашиваю про LA, что означают 3 числа и как они считаются. По факту ответа задаю вопрос когда 2 физически одинаковых сервера (например с 10 ядрами) имеют разный LA, при этом один из них имеет LA 100 и не тупит, а другой при LA 10 слайд шоу. Что может происходить?

Вот буквально пример прошлой недели, когда Proxmox потерял BackUP NFS шару при переезде 🙂 Сервер при этом был крайне отзывчивым и вполне себе рабочим.

Когда мы видим LA 100 на 10 ядрах и живую систему — это классический CPU-bound: задачи честно стоят в очереди за квантом времени, и планировщик Linux просто эффективно их «разруливает».

Совсем другая история начинается, когда процессы уходят в так называемый Uninterruptible Sleep (статус D в top). В этом состоянии процесс не потребляет ресурсы процессора, но ядро всё равно учитывает его при расчете Load Average.

Именно это произошло с моим Proxmox: когда NFS-шара «отвалилась», все системные вызовы к ней просто повисли в ожидании ответа от сети. В итоге мы получаем ситуацию, когда LA огромен, но система отзывчива.

Мораль истории в том, что LA — это не показатель нагрузки системы, а всего лишь длина очереди, где в одной куче смешаны и те, кто хочет работать, и те, кто «просто постоять», всегда смотрите на iowait и статусы процессов — они скажут гораздо больше, чем три заветные цифры.

Вы можете оставить комментарий ниже.

Оставить комментарий

Вы должны Войти, чтобы оставить комментарий.