Купили двухсокетный сервер на 128 ядер, а база данных стала работать медленнее. Разбираем lock contention.
В Linux 6.x RCU stalls и spinlock contention - это не просто "проблемы", это критические узкие места при масштабировании сервисов на 128+ ядер. При увеличении количества потоков, работающих с общими ресурсами ядра, lock contention начинает доминировать над производительностью.
Пример: при использовании spinlock в `task_struct` или `cpu_hotplug_lock`, каждый контендинг блокирует поток на 10–100 мкс. На 128 ядрах это может привести к сотням тысяч контенденсов в секунду. В результате - TCO увеличивается за счёт дополнительных CPU-часов, задержек и снижения throughput.
Проверьте:
- `perf lock` для анализа lock contention
- `rcutorture` для тестирования RCU
- `sysctl kernel.sched_wake_up_granularity_ns` (по умолчанию 1000000)
Решение: переход на RCU-protected data structures, использование `spinlock_t` с `SPINLOCK_NOLOG` (если логирование не нужно), или переключение на `rwsem` при высокой нагрузке чтения.
В реальности, масштабирование на 128 ядер без оптимизации lock-механизмов - это потеря 30–50% производительности. И это не AI-клише, это измеряемый TCO.
- Инфраструктурный аудит и калькулятор TCO кластера: @Personnel_run_bot (/tma)
- База знаний и разборы: ftops.space
- ftops.space | Run-As-Daemon Infrastructure
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Купили двухсокетный сервер на 128 ядер, а база данных стала ... | 0 | 9.49 | 01-10-2026 |
| 2 | Купили двухсокетный сервер на 128 ядер, а база данных стала ... | 0 | 9.49 | 01-10-2026 |
| 3 | Купили двухсокетный сервер на 128 ядер, а база данных стала ... | 0 | 9.49 | 30-09-2026 |
| 4 | Купили двухсокетный сервер на 128 ядер, а база данных стала ... | 0 | 9.49 | 30-09-2026 |
| 5 | У вас 64 ядра и 256 ГБ памяти, но Nginx ... | 0 | 14.42 | 29-09-2026 |
| 6 | База данных захлебывается в дисковом I/O wait, хотя на сервере ... | 0 | 8.6 | 26-09-2026 |
| 7 | Каждые пять минут нагруженный PostgreSQL кластер словно падает в обморок ... | 0 | 7.98 | 28-09-2026 |
| 8 | Каждые 5 минут транзакции в PostgreSQL замирают на 3-7 секунд. ... | 0 | 9.79 | 30-09-2026 |
| 9 | Каждые 5 минут транзакции в PostgreSQL замирают на 3-7 секунд. ... | 0 | 8.8 | 29-09-2026 |
| 10 | Каждые пять минут высоконагруженная база данных в PostgreSQL словно проваливается ... | 1 | 8.42 | 29-09-2026 |