На сервере с 8 ядрами крутится сервис с несколькими сотнями потоков «на всякий случай», и он ощутимо медленнее той же версии с полусотней. CPU в top показывает 100%, но ответы приходят медленнее, а колонка us (пользовательское время) не растёт пропорционально нагрузке — вместо неё ползёт вверх sy. Ядро не бездельничает: оно честно работает, просто не над вашими запросами, а над тем, чтобы каждые несколько миллисекунд снять с CPU один поток и посадить туда другой. Дальше — как эту цену измерить числом, а не ощущением «что-то тормозит», и какие изменения…
Подробнее →