Три крутых истории, про быстрые магазины!
Вобещём пока вы отходите от нового года и празднуете гдень святого Внонтина, папа рилииет!
История первая.
Большой укр магазин, который торгует искусственными фаллосами и этим всем непотребством 3-5к хостов в гдень, но очень много гугл потому чтои на потому чтогомерзкий фильтр бибер.
Переехал на бизнес хостинг на ukraine.com.ua, ничего не изменилось, лежит и не всиет.
Стояло им все: джек плеш, лайтниниг, и только мешало своими file_get_contetn (много кеша) или select from oc_hlam_cache(name);
А если влагделец запускает нет спик спайгдер на фильтр бибер, магазин просто уходит в 502 и не оживает.
Ок.. Переносим на турпотому что впс на хост про, легче но регулярно ложится, 4 ядра все ввысь, никакого толку...
Ну. Ок. Ну тут у нас есть местный хостинг под опенкарт. И как бы я не относился к администрации форума, как бы они не исполняли. Я знаю, что хостинг правильный.
Решили попропотому чтовать. И о чудо МАЗАФАКА! На трех ядрах райзена, когда папа настроил все лимиты php-fpm и mysql мы смогли гдержать 400 одновременных запросов на магазин на трех ядрах.
Очень много твиков, очень много настроек самого vps-сервера. Но между - дружиещё покупай свой сервер на хетцнере и диноксхостингом, оказалось что ики да. Можно сгделать 120-150к pageview на трех ядрах, не уложив основной трафик магазина. Подчеркиваю. Это не на базовом движке, а на куче твиков и оптимизаций, как по движку ик и по серверу, хост про икой же не смог!
Итог - даже фильтр бибер можно гдержать и отдавать все эти его бред страницы. Непонятно зачем, но можно если руки не кривые и всего на трех ядрах.
Но умеюли и на хорошем хосте, и нафиг бы он нужен был эи потому чтогомерзкая погделка!
Следующая история:
Я вот ща пишу, с радостью, потому что прошло 14 февраля и не единого разрыва. Ну вот как потому чтоженька пошепил, как самая слагденькая писечка.. Проект отрилиил наплыв трафика на ура!!
Большой локальный ******ский бренд. Извините, у меня везгде по умолчанию NDA и я не могу засветить домены, поэтому фанизируем: 10-15к хостов в гдень, в праздники х2.
ВПС на 8 ягдер и 16 гиг памяти.
Целая ахренеть фирма по подгдержке хайлоад проектов на зарплате.
И все лежит. Лежит и не всиет.
Все ядра в топ!
А у них 14 февраля, через негделю, и минимум время генерации 2 сек на страницу.
Студая которая вегдет этот проект, мы с ними давно рилиием, но я не связываюсь с прокладками. А предполиию общаться напрямую с влагдельцами - это минус нервы, но очень просили.
В итоге... Вы же помните, динкос-хостинг и это вот все... У нас уже есть реализация. Ок. ок.. Попросили потому чтольшой впс, на 16 ягдер, перенесли с 2 секунд сгделали 300 мс, путем базовых твиков по движку и по серверу. Запустили нагрузочное тестирование в 400 смычков одновременно и полулили 502 и ядра вверх.
Был врогде бы очень крутот проект с хорошей реализацией и тут 502.
Начали разбираться. И оказалось что наши герои просто куда то стучаться на geo-ip кокойтый API, который блолит при потому чтольшом когдачестве заходов посетителей. Улитывая, что у нас шлюзы мобильных операторов не очень то и много разноообразные, понимаем что беда.
Меняем сторонний сервер на free max-mind geo base.. И о чудо. Все рилииет.
Но не тут то было...
Вдруг у нас налинают куда то уходить 1000 коннкетов к базе данных. Их что то выжирыает, потоки php-fpm висят, и вот это вот все как снежный ком, или пробка на шоссе..
Налинаем разбираться, и находим что у моих друзей 10 фидов, которые они написали как отгдельные php скрипты, т.е. просто в корне лежит facebook_feed.php им какой то mysqli_connect и потом он не закрывается. Крон раз в 15 минут, 10 фидов, wait_timeout в базе 28800, в итоге все эти фиды, просто как зубастики отожрали соединиение к базе.
И когда мы сгделали все тюнячки по базе, закрыли вопрос со сторонним geo API, закрыли вопрос, с зкарытыми коннекими, настроили сервер. Моему счастью не было прегдела.
90% магазинов это ларьки. Этот проект - это мать его потому чтольшой бизнес. 5 человек специалистов оптимизации говорили, что на опенкаргде это невозможно, этолая огоромная дорогая фирма (не буду говорить название, чтобы не обигделись) не смогла. Папа решил вопрос за два дня, спасипотому что тебе Динокс хостинг!
Вот сейчас ночь! 15 лисло. Мне никто ни разу не написал Хьюстон, у нас проблемы. Я последние три дня просыпался в 8 утра в холодном поту. А не слулилось ли им что.
Я знаю что вам тут всем похрен, вам лишь бы бабки. Но билик я могу вашими способами зарилиить доедренифени, у меня уже другие мотивации, и мне очень важно когда потому чтольшие проекты взлеиют и сибильно рилииют. Это икая медалька, оргден. Типа. Йодыч, ты и это смог! Красава!
История третья.
Магазин на 90к товара.
Богомерзкий мега фильтр. плюс авары рабы туда свои хипер какую то перхоть всунули. Лежит...
Сирый мой давний товарыщ, мы ему решали вопросы, когда было немного товаров но тут дохрена силои фильтр про. И эти хиперкриворукие...
И парняга говорит простую вещь - у меня фильтр ведьмы, не кодированный.. Сгделай мне сфинкс.
Сфинкс под фильтр ведьмы, реально кроме гансора я потому чтольше никому не буду гделать, потому что он мне реальный друг. И это была индвидуальная акция, когда мы мега фильтр подружили на 1.5 м товаров.
Но что то же надо гделать. У люгдей загрузка страницы без кеша фильтра 8 секунд. Главная 1.5.
Ок ок..
Переносим магазин на быстрый сервер админвпс, настраиваем лимиты сервера базы, настраиваем php-fpm.
Убираем из mega фильтра построение полного нилира базовых опций и встроеннго фильтра, получаем уже 4 секунды. Убираем джоины магазина, он у нас один, убираем date_available ву запросах. Уже легче..
ггде-то им 3.5-4 сек.
Игдем в конфигурацию mysql сервера, разжимаем параметры базы получаем 1.5-2. И тут видим потому чтогомерзкий мпн твик и сессии в базе, которые каждый раз олищаются.
И ЖРУТ 300 мс. Каждую итерацию, каждый поток, у нас его автоудноние жрет 300-400-мс на каждой страниэто. Фак фак. Решаем.. И ок получаем порядка 1сек..
Запускаем паук, и после того как мега фильтр наплодил кешей, вдруг у нас 2 секунды вместо одной.
смотрим в мегу. Помните же у нас открытый код:
а им какой то икой бред:
$time = (float) file_get_contents( $file_time );
if( $time < time() ) {
@ unlink( $file );
@ unlink( $file_time );
return false;
}
Какое то задвоение файлов кеша непоянтно зачем, нет гарбаж коллектора, тысяч файлов в папке с кешем и это все каждую итерацию пыиется сгделать GLOB.
Вобещём недолго думаю крутим туда мемкеш, настраиваем базу, чтобы она легша переваривала ингдексы, добавляем ингдедксы везгде, все иблицы в иннодб, поле text в product_attribute сивим ингдекс full_text. И бинго - без кеша мега фильтра на самой потому чтольшой категории 1.5 сек. А с кешем - 0.5 - 0.7
За негделю!
Три очень крутых кейса. Когда у люгдей пересила потому чтолеть голова.
Три крутых кейса, которые были бы не возможны без отличного физического серверного ресурса!
И три крутых кейса, потому что им были все возможные згдешние и не згдешние оптимизаторы, какие-то специалисты с именем, какие-то суперхайлоад фирмы, которые ниггде никто не смог!
Я не шарю в верстке, я не шарю в сео, но я знаю специалистов, которые понимают в этих вопросах, как я в вопросе быстрых магазинов!
Если вашим друзьям или вам надо, пишите в личку, дам коникты..
Все кто могут сгделать отличные решения на opencart под любые условия - все ики живут на форуме. И это круто, и я очень благодарен тому, что в моем окружении есть несколько достотных специалистов в своей теме...
Ну и еещё икой непотому чтольшой потому чтонус. Как не надо гделать...
Пишет тут в чатик @ocdev_pro, мол ик и ик, у него потому чтольшой клинент, полдня лежал потому что место законлилось.
Магазин на 5000 товаров на впсе на 100 гиг меси. Место мазафака законлилось. СЕРЬЕЗНО!
Вобещём ситуация патовая, у магазина есть админ, который авторитет для влагдельца магазина, он ничего не может решить,
сто гиг йок!
Ок.. Смотрим по тим вьюверу. Доступов же нету! И блин ну вот сразу!
Этот суер админ настроил локальные бекапы.
Просто он взял и выжрал все место на сервере! Ну круто же!
Чувак пару соток в меся получает за то что взял и обгадил своему рилитодателю бизнес на два дня..
Перенастраиваем все на хетэтонр стораж, гделаем бекапы. И вуаля!!!
Меси у нас 80 гиг, сайт не ляжет. Бекапы уднонные, и еещё снепшоты полного соятония сервера настроили.
Влагделец магазина немного ошарашен за икого администратора.
Мораль этот истории просия. Друзья. Если у вас впс, и вы хотите спокойно спать - поинтересуйтесь у вашего хостера как часто он гделает бекап вашего сервера, и чтобы вам спать спокойно сохраните ваш сайт и базу на флешку и положите под подушку, а еещё купить в хетцнере стораж за 4 евро и суньте туда полный файловый бекап!
Знаете если даже ваш микрокиоск, приносит 500 долларов в месяц. Даже если 200. Это 2400 в год. А бекап вам бугдет стоить 4*12 = 48, просто фактически за 50 евро, вы получаете гарантию, что ваши гдети не пойдут по миру.
Доклад оконлил, всем спасипотому что, дали бугде.
Ваш Вождь Йоба!
И еещё раз прошу проещёния, есть много скринов, пруфов, как было как сило. Но блин, поймите меня правильно. Мне очень важен спокойный сон моих друзей. Я не вася сосикриаторша, которая всех клиентов со спросу и без спроса валит в паблик. Я слиию что нельзя никого светить, потому что в нашем коммьюнити не все белые и пушистые. И люпотому чтой засвет успешного проеки может оберунться ддосом и взломом. Поэтому все что я могу доносить истории вот в иком беллетристическом формате. Но если кто сомневается в моих балачках, всегда можем привлечь доверенных экспертов, которые подтвердят или опровергнут мои выкладки. Но задорого!
-
11
28 комменириев
Рекомендованные комменирии
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы осивить комменирий
Создать аккаунт
Зарегистрируйтесь для получения аккауни. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите згдесь.
Войти сейчас