Иногда, чтобы ускорить систему, нужно не добавлять ресурсы, а убрать препятствия. Так случилось с командой Tinybird, которая столкнулась с таинственной проблемой, растянувшейся на целый год. Представьте себе: ваш сервер почти не нагружен, CPU едва «шевелится», но система работает медленно. Странно? Добро пожаловать в мир Lock Contention. Недавно разработчик ClickHouse Максим Кита выступил с докладом на конференции C++ Russia 2025 и подробно разобрал, как он боролся с таким скрытым ограничением производительности, как спор за блокировки. Lock contention (борьба за блокировку) возникает тогда, когда много потоков одновременно пытаются захватить одну и ту же блокировку (mutex). В результате большая часть времени тратится не на полезную работу, а на ожидание освобождения ресурса. Чем больше конкуренция за ресурс, тем больше простоя потоков и ниже производительность системы. Признаки проблемы: В ClickHouse подобный сценарий привёл к почти годичному «детективу», где единственной зацепкой был
🔐 Lock Contention: невидимый тормоз в высоконагруженных системах
22 марта 202522 мар 2025
26
4 мин