Представьте: утро вторника, вы спокойно попиваете кофе и вдруг получаете сигнал о том, что ваш сервер буквально «горит». Подключившись к машине по SSH, вы наблюдаете поразительные показатели — 3200% нагрузки на CPU! Каждое из 32 ядер сервера загружено на 100%, и кажется, будто оборудование вот-вот отправится на орбиту. Именно такую ситуацию недавно пережил Джозеф Мэйт, разработчик, который подробно описал произошедшее в своём блоге. Однако интригует не столько масштаб перегрузки, сколько её настоящая причина. 🔍 От простого к сложному: как нашли виновника? Первые шаги расследования начались с анализа дампов потоков Java 17. Под подозрением оказался вызов метода TreeMap.put(). На первый взгляд код выглядел просто странно — цикл зачем-то перебирал ненужные элементы, но не они стали настоящей проблемой. 💡 Настоящий злодей — параллельность Оказалось, что вся проблема была в многопоточном доступе к обычному TreeMap. Эта структура данных реализована на основе красно-чёрного дерева (Red-Blac