У нас новый клиент.
Это интернет магазин на Битриксе, ~20 тысяч визитов в месяц.
Сайт изначально хостился на shared-хостинге Beget. Время от времени, особенно при переходе в каталог или результаты поиска, сайт внезапно отдавал ошибку 503 Service Unavailable.
Пользователи жаловались, клиент переживал.
Клиент неоднократно обращался в тех.поддержку хостинга с просьбой помочь. ТП хостинга ссылались на высокую внешнюю нагрузку и "ботов Яндекса".
Ошибка проявлялась и дальше.
Пока, наконец, клиент не решил обратиться к нам?
Так как shared-хостинг не даёт доступ к низкоуровневым логам сервера, было принято решение перенести проект на VDS.
И сразу стало понятно, в чём дело.
Вот строчка из логов:
Out of memory: Killed process (mysqld) ...
MySQL просто убивался системой по Out Of Memory, потому что съедал больше, чем было доступно. Хотя vds с 8гб ОЗУ, и даже их не хватило.
В такие моменты сайт и переставал работать.
Наши действия:
– Добавили swap,
– Обнулили тяжелую таблицу с логами (~1.4ГБ),
– Уменьшили innodb_buffer_pool_size до адекватного размера,
– Настроили Apache, чтобы воркеры не простаивали и не жрали память впустую.
Сейчас сайт работает стабильно. А главное — теперь у нас есть контроль над окружением.
На shared-хостинге сделать всё это было невозможно: ни свап, ни диагностика OOM, ни тюнинг серверных параметров.
Мораль:
Shared-хостинг — как жить в общежитии. В случае чего, можно, конечно, позвонить коменданту.
Но что это за человек, хозяйственный ли, в каком он будет настроении, и станет ли вообще решать вашу проблему — неизвестно. Перепланировку вам точно делать запретят. Будет возможность только постер любимой группы на стену повесить.
VDS — как собственный загородный дом: можешь делать всё, как надо тебе. Но надо разбираться и во всё вникать. И нести ответственность, что бы дом не рухнул, конечно.
Ну и крышу чинить самому, если что?
