Эта история началась почти год назад с моего обращения в техподдержку хостинг провайдера hc.ru. Именно их услугами я пользовался с первых дней существования сайта. У меня там был приобретён самый дешевый виртуальный хостинг за 200 рублей в месяц, который редко требовал внимания к себе.
Зачем я теребил техподдержку?
На волне взломов блогов под управлением wordpress хотелось как-то обезопасить свой сайт. Одно из уязвимых мест – старая версия PHP на хостинге. Но обновить интерпретатор через панель управления можно было только до версии 7.0, которая на тот момент уже со дня должна была лишиться поддержки. Мой внутренний параноик потихоньку начал заводить шарманку о необходимости смены хостинга.
Но заняться решением этой проблемы было некогда. Да и лень, если честно.
Первый переезд сайта – без моего согласия
В 14 году РБК решили объединить все свои хостинги под одним брендом. Долгое время моего сайта это не касалось, но после обращения по поводу версии PHP пришло вот такое письмо.
И через пару дней сайт благополучно переехал в руцентр, но в панели управления ничего не поменялось. Да и по скорости работы сервер был идентичен прошлому.
Второй переезд — с хреновыми результатами
Через полгода мне пришло новое письмо. Там в ультимативной форме сообщалось о том, что заботливый хостер перенесёт сайт на «новую технологическую платформу».
В новой версии панели управления нужная мне версия php так и не появилась. Зато появились подтормаживания. Первый ответ от сайта стал приходить в среднем через секунду. Это очень долго. Но некоторые запросы вообще зависали на несколько секунд. И это уже совсем ни в какие ворота не лезло.
Я написал письмо в техподдержку, но оно осталось без ответа. Нужно было что-то менять. Но времени на это, как обычно, не было.
Третий переезд сайта – вынужденный
Случилось так, что перед выходными я простыл. А это значит, что никаких поездок и футбола, пока иммунитет не поборет вирус. Самое время чтобы заняться сайтом. Решению вопроса также способствовало исчерпание средств на счете в руцентре. Тут уже не до лени.
По авторитетному совету друга Гриши я заказал виртуальный сервер на vscale.io. Это тот же селектел, но немного дешевле.
За те же самые 200 рублей я получил 1 ядро процессора, 512мб памяти и 20 ГБ места на SSD диске.
Перед переездом надо было решить несколько задач:
- Установить на сервере свежие версии ПО
- Отказаться от Apache Httpd в пользу nginx + php-fpm
- Настроить конфиги так, чтобы памяти хватало всему, что запущено
- Получить ssl сертификат для домена и сделать редирект на https
- Убрать лишний js мусор из кода шаблона сайта
С каждым из этих пунктов пришлось повозиться. Но больше всего проблем доставила новая версия MySQL 8, которая с минимальнейшим конфигом на одно доступное соединение и самыми низкими цифрами из допустимых для всех кэшей всё равно отъедала 300 мб памяти просто так. И mysqltuner для этой версии пока что бесполезен. Тот же конфиг на MySQL 5.7 потреблял 22МБ памяти, но мне такие крайности были не нужны.
Percona или Maria я не стал ставить из лени. Их довольно муторно обновлять, да и избыточны они для небольшого бложика с крохотной базой.
Полученный результат превзошел все мои ожидания. Первый ответ от сервера теперь в среднем приходит за 70мс. Дальше уже ускоряться нет смысла — не на бирже торгуем.
Итог
Вывод из этой записи простой: лучше не лениться и потратить немного времени на поиск и настройку выделенного сервера, чем мучиться с техподдержкой и доказывать им что их сервис медленный кусок навоза.