💠 Технический пост: нагрузка и подвисания
На днях начались дикие лаги на сайте ГолдВойса. То страницы грузятся по 5 секунд, то ошибки сервер возвращает.
После анализа зависших запросов в базе данных было обнаружено 2 основных узких горлышка:
1 — запросы по выборке ставок из бустера и аплифта. Они создавали основную задержку.
2 — запросы по получению новых уведомлений в шапке сайта для каждого пользователя онлайн. Несмотря на разбивку и партицию таблицы, запросы длились до 10 секунд. Связано это с большим объемом таблицы, она содержит уже больше 13 миллионов записей.
Обе проблемы были решены, как встраиванием дополнительных индексов в используемые таблицы, так и добавлением кэширования на 10 секунд. Все до этого крутилось на мелкой машине с 512 Мб оперативки и 1 ядром, перебрались на машину посильнее.
Тестирование нагрузки помогло настроить нужные параметры для php7.1-fpm, теперь нагрузка должна держаться в разы лучше. Остались еще несколько проблем, но они будут решены в скором времени кэшированием таких объемных страниц как Популярное и Vox Populi. В будущем, естественно, понадобится оптимизировать все еще больше. Но текущие решения должны справляться с органическим трафиком. А вот при супер-возросшей нагрузкой придется встроить некоторые интересные решения, и мы к этому готовы 🏰
Всем спасибо за внимание! Будем рады вашей постоянной поддержке 📲 Ставьте апвоуты, подписывайтесь на @goldvoice