Никита Степанов › devmwme
Лови момент, создавай будущее
Рейтинг
2 553
№ 865 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Сочи
Опыт работы
11 лет
На сайте с
2023 года
Юридический статус
Самозанятый
Безопасная сделка
Деньги списываются после приёмки

Eko-Salon.ru - cеть из 184 интернет-магазинов. Вылечил ежедневные падения, освободил 570 ГБ, ускорил в 4 раза

Используемые навыки OpenCart PHP

Описание

https://eko-salon.ru/

Владелец сети городских магазинов автомобильных чехлов месяцами жаловался: сайты то не открываются с айфона, то сразу со всех устройств, и всегда все 184 одновременно. До меня проблему пытались решить покупкой более мощного сервера. Я воспроизвел аварию и разобрал журналы: дело оказалось не в мощности.

Решение

Падения

Сервер не задыхался от нагрузки, он сам отключал посетителей: защита от частых обращений молча отрезала адрес человека на пять минут, причем сразу от всех 184 сайтов. Под нее попадали обычные покупатели, особенно с телефонов. Вторая причина: у семи старых сайтов права на файлы не давали быстрой части сервера их читать, и каждая картинка шла через тяжелую, где всего 150 рабочих мест на всю сеть. Двух посетителей хватало, чтобы встали все магазины. Третья: диск переполнялся из-за системного журнала без ограничений.

Все исправил с возможностью отката за минуту, добавил кеш страниц для поисковых роботов (владелец просил их не блокировать) и перевел карту сайта из пересборки на лету в готовый файл, с 13 секунд до 0,03. Отказы живым посетителям упали с полутора тысяч в сутки до нуля, ошибки доступа с 8669 до нуля, перезагрузки прекратились.

Место и скорость

Диск был занят на 88 процентов: 169 копий магазина хранили каждая свой набор одинаковых картинок по 3,7 ГБ. Скопировать такой объем было некуда, поэтому одинаковые файлы я объединил в один, а старые не удалял, а откладывал в отдельную папку с возвратом одной командой. Перед этим доработал движок, чтобы загрузка картинки в одном городе не меняла ее в других, и написал проверку каждого файла по контрольной сумме до и после. За пять ночей объединено 19,3 миллиона файлов, через неделю наблюдения копии удалены: занято 147 ГБ вместо 755, без потерь и простоя.

Попутно ускорил сайты: современный формат картинок, свой шрифт вместо загрузки с Google, больше памяти под готовый код. И нашел опечатку в одном символе движка, из-за которой полтора года все внутренние ссылки шли через лишнее перенаправление: 240 тысяч лишних обращений в сутки. Страница товара стала открываться за 0,25 секунды вместо 2,2.

Результат

Сложность была не в том, чтобы улучшить, а в том, чтобы не сломать работающий бизнес: заказы идут круглосуточно, бэкапов не было, любое изменение затрагивает сразу 184 сайта. Поэтому все делалось скриптами с холостым прогоном и копиями настроек, а данные удалялись только после недели наблюдения. Ни одного простоя, ни одного потерянного файла.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Туристическая онлайн-платформа региона (веб + PWA + Android + админка)
Туристическая онлайн-платформа региона (веб + PWA + Android + админка)
78
Веб-разработка и IT iVend Retail — корпоративный сайт для enterprise retail-платформы
iVend Retail — корпоративный сайт для enterprise retail-платформы
153
Веб-разработка и IT DataSpike многостраничный презентационный сайт
DataSpike многостраничный презентационный сайт
125
Веб-разработка и IT Kenoll - корпоративный сайт-каталог дистрибьютора промышленной продукции
Kenoll - корпоративный сайт-каталог дистрибьютора промышленной продукции
46