Уважаемые игроки, атаки на наш проект, конечно, потрепали нервов и нам и вам, создали кучу проблем нашему провайдеру и даже магистральным аплинкам. И как коронавирусная инфекция выявила все несовершенство мировой системы здравоохранения, так и и DDoS стал индикатором накопившихся проблем, которые особо не беспокоили ранее, но дружно выплыли сейчас. Во-первых, проект целиком был перенесен в отдельную защищенную сеть, во-вторых, отделен непосредственно от серверного и абонентского оборудования нашего провайдера. Кроме того, в порядок были приведены фаерволы, средства фильтрации, оптимизирована работа веб сервера, о нем мы сейчас и поговорим...
Как некоторые из вас уже успели заметить, наш сайт стал работать существенно быстрее. Началось все с того, что наш веб-сервер стал падать от нагрузки игроков, которых массово выкидывало из игрового мира и они шли искать информацию о произошедшем на сайте. В процессе выяснилось, что кеширующий сервер - memcached - упирался в лимит файловых дескрипторов, что приводило к существенному замедлению его работы и, вместо ускорения, мы получали прямо противоположное - существенное замедление всего, а большое количество запросов даже приводило ко временной недоступности сайта.
На главной странице сайта часть контента не использовала кеш, потому что разработчики одного стороннего компонента - раки , а скрипты базы знаний мешали работе остального JS-кода. Несколько запросов, часто выполняющихся на сайте, не имели нужных индексов. Подключив аналитику, мы постепенно стали производить оптимизацию:
Перевод кеширования на UNIX Socket:
Пример оптимизации работы mysql запросов:
В итоге, сайт в целом стал грузиться минимум в 2 раза быстрее, особенно это стало заметно по форуму и панели управления. Главная страница перестала тупить, как раньше. А самое главное - веб-сервер стал действительно устойчивым и перестал отваливаться.
Работы продолжаются и сейчас, возможно, получится выжать из веб-сервера еще что-то и сделать сайт сверхзвуковым. Спасибо за внимание, не болейте.