Magic Filter: 100 000 товаров в категории, 400 000 значений атрибутов, взлетит на Opencart?

Mjolnir_-_the_Dark_World

Скоро Новый Год — время волшебства и у меня есть его немножко для вас.

Написал тут мне давний товарищ, так мол и так. Магазин разросся, товаров 100 тысяч в одной категории, фильтр тупит, сервер как у Пентагона не спасат — и правда не спасает. Я запускал у себя. Ни индексы, ни сервер, ни кеширование. Фильтр не спасает ничего. Так как 100к товаров 10 атрибутов и пару тысяч уникальных значений.

И все настолько плохо, что владельцы магазина собрались ехать на Битрикс (Хиросима привет, ты не один такой потерпевший). Я прекрасно понимаю, что даже не все программисты понимают, что на mysql в существующей структуре данных Opencart сделать быстрый фильтр, работающий быстро «на холодную» по такому набору данных практически нереально.

Читать далее

Хуйнаныр(4)Очко(1)

Быстрый магазин и общие настройки как сварить? (чеклист)

warim

Возьмем среднестатистический проект на 5-10к товаров, который вроде как-то работает, и может даже в котором «специалисты уже что-то делали», или сервер оптимизировали согласно рекомендации хостинга.
Я еще не видел магазина, в котором мне нечего было бы покрутить.
Всегда народ что-либо упускает.
Давайте разебермся по пунктам что вам надо крутить, чтобы не болела голова за потерянные заказы и уходы клиентов.
Зачастую ведь кажется что у вас все хорошо, но даже повышение конверсии на 5-10% за год превращается в приличные деньги, поэтому любой оптимайз — это чистая прибыль.

Магазин у нас состоит из трех основных собственных компонентов (сервер, база данных и php-скрипт) и сторонних сервисов (аналитика, онлайн-чаты, различные api перевозчиков, доноры данных и так далее…)

Если на сторонние сервисы мы можем влиять достаточно опосредовано. То внутренние находятся у нас под полным контролем и мы можем делать с ними все что угодно.

Сразу хочу сказать — любой шаред хостинг не даст вам всех возможностей для реализации идеальных настроек, поэтому по умолчанию речь пойдет о ситуации, когда проект живет на выделенном сервере.

Давайте начнем с сервера и того, что можно с ним сделать:

1 — У нас есть наш айпи. Его нужно проверить по спам базам, настроить ему PTR и проверить доступность магазина из мира через host-tracker.

2 — Сразу настраиваем бекапы. Неважно какая у вас панель, операционная система — настраиваем бекапы и проверяем, как они работают. Люди деляться на три категории: тех, кто не делает бекапы никогда, тех, кто делает бекапы, и тех, кто проверяет поднимаются ли из этих бекапов данные.

3 — Настраиваем почту. Как это сделать  я уже не раз писал.

4 — Закрываем на хрен, все что можем закрыть порты ssh, убиваем ftp, убиваем phpmyadmin, отключаем лог ошибок php.

5 — Проверяем включен ли Opcache для PHP и если не включен — включаем.

6 — Версия PHP. Не гонитесь за седьмыми восьмыми айфонами. 5.6 — стабильная работает, в ней в коробоке есть opcache и по скорости для Opencart она не отличается от 7.x, но вы избегаете массы конфликтов.

7 — Ставим библиотеки для оптимизации картинок imagick, optipng, jpegoptim.

8 — Ставим memcache или redis.

9 — Включаем Nginx, настраиваем кеширование-сжатие статики, проверяем в гуглпейджспиде.

10 — Включаем http2, если у вас старый nginx, обновляем, проверяем наличие openssl 1.0.2 (из консоли nginx -V)  и проверяем работу http2 этим сервисом.

11 — Если совсем извратиться ставим Mariadb 10 (она поддерживает full-text индексы для inno-db таблиц, нужны для некоторых модулей поиска и для megafilter pro plus). И вносим в конфиг сервера mysql, минимальные тюнинг-правки (поддержку больших пакетов, увеличиваем размер буфферов для ключей  ну и по мелочи таймауты уменьшаем типа, чтобы вдруг чего база не ушла в глубокие думы). Очень полезная статья на хабре.

12 — Если совсем шибко хочется извратиться, вкручиваем php-fpm и вырубаем apache и оставляем связку nginx+php-fpm. Мероприятие само по себе без навыков стремное. Но если вы хотите быстрее быстрого и стабильно — не помешает. В итоге экономия на спичках в 50-60 миллисекунд на ответе сервера. Но кому то бывает надо. Вот тут, нормальный рабочий конфиг, правда ему там надо еще дописать www на без www и исключение дублирующихся слешей. И еще. Проверьте, чтобы виртуалхост работал через сокет а не чере tcp-порт. Через сокет получается быстрее.

13 — Смотрим  в логи ошибок вируталхоста, видим кучу ворнингов про upstream, которому маленький размер буфера. Идем в конфиг NGINX и добавляем ему размер буферов. Также не забываем про количество workerов, которые делаем равными количеству ядер.

14 — Ставим сфинкс. Сфинкс желательно ставить, не тот который  в ваших репах. А последний с официального сайта. Я на свой страх и риск в последнее время пользуюсь 2.3 Beta. Пока полет нормальный, но мне нужны кое-какие фичи именно из этого релиза.

15 — Если еще раз, ооооочень сильно хочется извратиться, подвешиваем сесии в memcache. Польза будет на большом трафике от 2-3к посетителей в день, и польза незначительная. фанаты рухайлоад ,могут почитать подробнее на рухайлоаде.

Теперь перейдем к базе.

1 — Индексы. В последнее время, все стали умные, начитались про индексы, а еще более умные наделалил недоделанных калек с бесплатных модулей, которые типа сейчас оптимизируют переоптимизируют все и вся. Должен вас расстроить — не соптимизируют. Есть несколько сложных запросов, которым крайне мало индекса на все id, а для их быстрой работы необходимы составные покрывающие индексы на десяток таблиц, о которых ни один модулепейсатель и оптимизатор даже не подозревает, и это только для голого движка. А там где дело касается фильтров, большого количества отзывов в модуле Маркимарка к примеру (он в курсе), и большого количества заказов, там могут быть любые сюрпризы и для оптимизации работы этих задач, необходим первичный мониторинг этих запросов — а потом эксперименты, эксперименты и еще раз эксперименты, как с индексами так и с самими запросами.
Вобщем индексы надо расставить, но расставить с умом, а не как тупая обезьяна с гранатой.

2 — Innodb. Недавно я столкнулся с магазином, в котором после переноса покрашились таблицы, и я очень долго восстанавливал его работоспособность. При использовании innodb, такого не происходит. Поэтому если вы параноик — стоит перебить все таблицы в этот тип. Но. Будет потеря производительности на 5-15%, именно в результатах запросов, и проблема с full-text индексами. Но она решается — я уже писал выше как. А чтобы не сильно тупило сделайте параметр innodb_flush_log_at_trx_commit = 1 что это и зачем — читайте в мануале. Так что для использовании innodb — есть только один аргумент — это сохранность данных. Тут — хозяин барин.

3 — Сделайте оптимизацию и проверку таблиц. Сильно быстрее не станет, но дефрагментация диска всегда помогала старому пентиуму. Так что лишней не будет.

4 — По возможности проверьте весь хлам и удалите ненужные данные о товарах, атрибутах и всякую подобную лабудень. Часто бывает, когда у людей висит 2-3-4 набора таблиц в одной базе. Типа test new и так далее. Не стоит так делать. Проект в продакшне — это проект в продакшне в нем не должно быть ничего лишнего.

Теперь перейдем к скрипту магазина.

0 — проверяем права на папки. Были у меня пару раз истории, когда все тупило, ошибки выключены, магазин тупит, а просто надо было на папку кеша дать доступ.

1 — Даже если у вас нет медленных запросов, у вас может быть из общее количество в пару тысяч, и даже если каждый запрос выполняется 1 миллисекунду, то их обработка — это уже 2 секунды на выходе. Поэтому стараемся уменьшить общее количество запросов. Кешируем все что можно. Меню, модули категорий, модули хитов продаж и так далее. Первая задача оптимизации скриптов — это уменьшить общее количества запросов по максимум. Понятное дело что есть кодированные модули — но все куда дотянуться руки — кешируем, либо переписываем запросы.  Либо переписываем запросы и кешируем.

2 — Парсинг запускаем только по крону и только при помощи cli-php, никаких wget http://наш-магазин. Гоните таких писателей в шею. А еще желательно все кроны запускать ночью, если есть такая возможность.

3 — Все сторонние API, типа инстаграма — должны работать через AJAX, чтобы если инста лежит вместе с ним не лег у вас магазин, так как если вы из php стучитесь на сторонний ресурс и он лежит, то пхп ложиться вместе с ним.

4 — при желании забираем оптимизированные скрипты из гугл пейджспида, сливаем с CDN к себе локально шрифты, jqeury библиотеки, меняем все на .min, и все скрипты и стили, принудительно вписанные в  header.tpl объединяем в один файл (в два файла, один со скриптами, второй со стилями).

5 — Включаем кеши, там где можно включить, в модуле Марка. В мегафильтре, везде…

6 — Включаем поддержку Imagick и оптимизацию на лету картинок через jpegoptim и optipng. Как это сделать, я уже писал. Не забываем удалить кеш картинок и системный кеш, а потом их заново пересоздать, Xenus вам в помощь.

7 — Если хочется совсем быстро, подключаем redis или memcache, redis — предпочтительней, так как он без проблем работает с большими объемами данных и не сбрасывает их при перезагрузке, за счет использования дискового буфера.

8 — Если вы переезжали на https и использовали http-фикс, и уже переехали, желательно его выключить. Лишние str_replace  — это не хорошо.

9 — Фильтры все меняем на megaFilter  — он таки самый быстрый.

10 — Забываем про сео-фильтры, которые генерируют мусорные страницы без контента. По ним только боты шаряться и запредельно нагружают систему. В индекс такие страницы не смогут попасть, а тем более в топ выдачи. А вот санкции получить можно — как пить дать.

11 — Проверяем роботс и смотрим, чтобы у нас не было лишних открытых роутов. Идеальный роботс — это роботс в котором закрыты все get-параметры, через который роботы не смогут достучаться на любые сопли. Проверяем закрыт ли поиск, тэги, и комментарии. Я видел магазин в котором было 20 000 страниц исключенных яндексом — все это были комментарии. Поисковики очень не любят дурной контент.

12 — Проверяем доступность фидов  (сайтмап, yml) и по возможности используем только генерируемые по крону.

13 — Смотрим на размеры файлов кеша. Бывает модули генерят файлы по 20-30мб. Избавляемся от такого, так как парсинг туда-сюда.

14 — Ставим Сфинкс для поиска.

15 (отдельно по версии 1.5) Обновляем vqmod, хотя бы до версии 1.5  — дает +100-200 мс. Для магазинов на версии <1.5.6 обновляем класс работы с базой данных и драйверы mysql, mysqli, таки чуть быстрее и на 5.6 php не заведется без mysqli. Есть какая то мудацкая практика с драйвером mysqliz — но он тормознутый. Также в 1.5 — глобальная проблема с очисткой мусора в кеше. Он забивается и его надо чистить. Сделать это можно либо допиской garbage — коллектора в сам класс. Либо bash-скриптом по крону.

Наверное, я что-то упустил и местами не до конца раскрыл темы. Но вот такая вот «волшебная таблетка» выходит, которую надо съесть для качественной работы системы.  И просто «поставить модуль» отделаться не получается. Поэтому специалисты тут и так разберутся, а для неспециалистов теперь есть что предъявить оптимизаторам.

Хуйнаныр(8)Очко(0)

Дайджест

latest-news

1 — Наконец, мы сделали seo_pro для 3.0  с поддержкой мультиязычности. В течении ближайших дней на форумах будет анонс бета-релиза нормальной русскоязычной сборки.
Очень мне хотелось бы нафаршировать базовый сео-функционал ништяками. Но меня смущают два момента. Во первых, всякие обсосы типа Otvet чвякают полную пургу про костыли. Сам Ответ и ему подобные только хуй из жопы научился вынимать недавно, а гонору что пиздец. И вот что хорошее не сделай таким пидарам — все равно будут вонять как тухлое дерьмо.
Второй фактор — это то, что мы ушли на паузу и очень долго думали как сделать с минимальными потерями совместимости хорошую реализацию. В узком кругу, я поднимал вопрос не единожды. Ни одна падла, имеющая отношение к разработке сборки, даже не чихнула помочь (кроме Маркимарка) и то. Для него у меня есть небольшой квест, посмотрим как он справится. Инициатива должна быть наказуема — подробности позже.

2 — чем больше мне в руки попадает магазинов в оптимизацию, тем больше я понимаю, что у меня появилось много последователей. Там-сям я вижу отголоски моих наработок, почерпнутых из блога. Понятное дело, что объять необъятное — сложно, и всех нюансов специфики настройки быстрых магазинов, еще никто не освоил. По крайней мере, я не видел магазин, к которому бы  я не мог доебаться. Но. Как-то меня жаба гложет. И есть у меня идея монетизировать особо полезняковый контент. Вот думаю я сделать раздел со статьями с платной подпиской. Левую пургу  я и дальше буду гнать как и гнал. А вот полезняк всякий, хочется продать за копеечку. Что скажете — я жадный гандон? Или может стоит мне отсыпать немного деньжат за труды? И сколько может стоить годовой абонемент на доступ в платный раздел по вашему?

3. Ситуация с владельцем магазина, которому комом в горле стала розетка развивается по какому то странному сценарию.
Я готов ему помочь. Готов помочь с большим дисконтом, вплоть до того что, без вопросов пущу его к себе на сервер на какое то время без денег, чтобы он восстановил ресурсы и пережил успешно новый год.
Но. Я не могу этого сделать.
Сначала админ сервера на котором хостится проект начал вставлять палки в колеса.
А теперь пропал сам герой истории(объявился, но невнятно).

4. Смотрю я на происходящее у Динокса на форуме, и у меня душа радуется. Не мне судить, как так получилось, но очень надеюсь, что и моя заслуга в этом есть. Но таки получилось в коммьюнити порядок. Все кто пиздили модули — получили по заслугам. Демоны с тупыми злобными постами типа pasha и компания, завалалили хавала и сидят тихо, занимаются делом. Чукча и его гав-гав-гав-свита  умерили свой никчемный лай. И произошло чудо блять. Куча народа задает внятные простые вопросы про магазины. Нет ебучих медведевых, которые в каждой коммерческой теме срали про Magento. Не слышно дебила-паши, который всех без разбора крыл нищебродами. Не видно даже обсосов софорпов-неохуео, которые дебильно спамили абсолютно весь коммерческий раздел. Нет хуй пойми каких людей в OcTeam, которые в собственных коммерческих интересах, или по пьяни банили конкурентов и неугодных. Уменьшилось количество возвратов (да здравствует нормальная политика покупок дополнений). Выплаты стали своевременны и все довольны. Форум стал похож на форум.

ВОТ ТАКИМ БЛЯТЬ И ДОЛЖНО БЫТЬ РУССКОЕ СООБЩЕСТВО Opencart.

Нормальным живым и позитивным.
Динокс — великий человек. Он смог! Учитесь у него манере ведения бизнеса.

 

UPD — и еще мне вот подумалось про Динокса. Если он когда нить будет нуждаться в деньгах — он может написать бестселлер по кризисному менеджемнту с названием «Как я чуть все не проебал и вовремя взял себя за жопу».  А еще — из него теперь получиться отличный мер Конотопа!

konotop

Хуйнаныр(16)Очко(0)

Дно пробито, или высер тупого пидараса.

thor

Да простят меня мужчины, речь пойдет о женщинах.

Шутка, речь пойдет о идиотах.
Автор предыдущего поста списался со своим админом, когда мы попытались его копнуть и вот такую срань заявил ОДМИН…

СУКА СУКА, ФАК МОЙ МОЗГ… В этом тексте все прекрасно!

1. Сторонние люди не могут сделать серьёзные изменения (за исключением дизайна или небольшого точечного функционала под моим присмотром) не создав проблем. Вы же помните, что когда изначально ко мне обратились, были проблемы которые решить было мягко говоря трудно. Я много переписал для исправления и не хотел бы это повторять.
2. По индексации я смотрел. Разделение на несколько sitemap сделать можно, я занимаюсь этим. Взять какое-то стороннее решение не получится, не заработает без переработки.
3. Sphinx использовали году в 2012. Да и то только те, кто берёт первый попавшийся вариант. Этот движок не может обеспечить скорость при необходимости сложных запросов, выдаёт нерелеватные результаты (если результат выдаётся быстро), отображает устаревшую информацию (и не отображает новую), не поддерживает некоторые распространённые варианты свойств поиска.

f4

Т.е:

1 — я хуй с горы и Дартаньян, а все остальные пидарасы! А то что у нас тут магазины на мульт товаров шуршат — это блять научная фантастика. Инопланетяне прилетели и помогли. АГА АГА!

2 — аааа.. у меня готовый скрипт такой есть уже года три, ой ой.. не заработает. Хуй у него блять не заработает на нормальную телку. Только на такого же прыщавого урода!

3 — ОЛОЛОЛОЛООООООООООООООООО ОЛОЛОЛОЛО!!!

вот краткий список проектов которые используют сфинкс.

там например есть avito.ru — ахуенно в 2012 году застряли.

Друзья мои. Если вам когда нибудь, в подобном тоне напишет хотя бы один прыщавый тыжадмин. Шлите его на хуй. И от меня тоже. Скажите  ЙОДА ТОЖЕ СУКА ТЕБЯ ПОСЛАЛ НА ХУЙ!

Это вот еще один костыль галимый в бизнес человека, которого подкосила розетка.

Хуйнаныр(8)Очко(0)

Нам пишут: РОЗЕТКА-ПИДАРАСЫ!

почти с самого начала существования этого сайта почитываю дерзкие статьи Yoda и мне нравится, насколько они соответствуют реальности.
захотелось поделиться тем смертельным говном, которое настигнет большинство интернет-продавцов в Украине самые ближайшие месяцы.

О себе: владелец небольшого интернет-магазина, в Киеве, игрушки, более 7 лет магазину, 30+ поставщиков.

Всё идет к тому, что если Вы не импортер — то Вы будете сосать лапу уже самое ближайшее время.

на данный момент поставщики начали сходить с ума — массово пошли торговать в розницу и начали продавать со скидками, а то и по оптовым ценам, либо же выгрузились на розетку — и там продают со скидками.

либо местные производители стали продавать сами через пром уа — практически по моим оптовым ценам.

мы потеряли лидерство уже в нескольких категориях — потому что на розетке товар продается почти по моей закупочной цене. Либо сетевые будинок играшок, Антошка — к выходным постоянно делают рассылки со скидками минус 20% и выше.

Еще случай — когда контора, называет себя оптовиком, при этом имеет 4 своих сайта — и через них сбрасывает свой товар со скромной наценкой и постоянными акциями — типа второй товар в чеке — минус 10% и тп.

Владелец одной из контор так и говорит — зачем мне другие продавцы — если розетка продает, как 70 моих клиентов. и пох, что там цена ниже рекомендованной, импортер всё равно в плюсе.

общее впечатление — что все бросились скидывать товар, а не продавать.

Поставщики стали отгружать товар каким-то мнимым продавцам на доску олкс, где отпускная цена торговцев из квартир не контролируется, потому что «я же не знаю, кто это». а проверять никто не собирается — «мне же всё равно продажи нужны»

У меня было несколько случаев — когда товары бренда LEGO — возвращали, чтобы купить их на розетке по моей закупочной цене, и еще и с посланием — что вы нас обманываете. По итогу, из Лего мы банально вышли.

Всяческие разбирательства с импортерами с предоставлением скринов с розетки о низкой цене не помогают — они пожимают плечами — «там акция» (которая уже длится 4 месяца?).

Или же цена после разбирательств исправляется — но после 19-00 и на выходных — Розетка кладет ее в пол.

Розетка на данный момент собирает 50% коммерческого трафика в Украине. и дальше будет больше.
начинает забивать сео-выдачу своими страницами — и всё чаще — когда на одной странице — несколько ссылок на этот магазин.

Розетка на данный момент запускает свой грузовой роботизированный терминал под Броварами и тогда начнется жесть — доставка день в день по Киеву.
В миллионниках же — розетка кооперируется с новой почтой, что на ее терминалах будут склады розетки — для доставки день в день в крупных городах.

У меня нет задачи сказать — что вот, розетка козлы и капиталисты, давайте устроим голодовку против них.

Я показываю Вам тренд, который очень быстро приближается. и об него можно разбить не только лицо, но и бизнес.

Такой же тренд и в США — 75% памперсов, 90% батареек и тд — продается через амазон, в структурах которого уже работает 550 тыс человек. Но там, хотя бы богатая страна, где разница в 5-20 долларов на чеке не отпугивает от покупки, а у нас покупатель часто может изменять решение из-за разницы в 50 грн.

Я считаю, что очень скоро грядут большие горькие изменения в украинском екоммерс, к которым многие не будут готовы.

Хуйнаныр(24)Очко(1)

Как я заебал adminvps!!!

Вот я реально трезво отдаю себе отчет. Я такой сука конченный максималист-заебышь!
Если мне чего надо сильно — то могу из глотки вырвать, а если не получается вырвать — то у меня есть план Б — есть мозг по чайной ложечке до победного.

Вот в ситуации с Adminvps, у меня есть полная уверенность: коль, я за них тут тяну мазу, они должны соответствовать. Но у меня постоянно хотелки, то suhosin + php 5.3 то редиску, то nginx мне бля пересоберите с openssl 1.0.2, то пересоберите сервант, то перенесите клиента на быструю ноду, то не заебуйте моих клиентов — разбирайтесь в своих косяках и пиздите ваших рядовых миньонов в саппорте побольнее,  чтобы не было «увеличивайте тариф» или «добавляйте память».
И вот так почти каждый день.

Ну каждый день — это я пизжу, но раз в два-три дня я хуяру владельцам какие то мои заебливые тикеты с рефами на другие тикеты, в которых постоянная зловонь.

Там ленивый мудак недоработал, тут ленивый мудак проебал, сям ленивый мудак не дочитал. Ну и хуяру я это в привычной вам манере. Корпоративная риторика отнимает много времени и пока-что непозволительная роскошь для меня.

Знаете, если бы я был владельцем этого хостинга — я бы такого клиента типа меня послал нахуй молча. Но вот надо отдать должное парням, они меня терпят. А еще самое удивительное, что хоть и с боями, но умудряются удовлетворять мои хотелки.

Сука сука, вот такая толерантность и клиентоориентированность. Ну хоть уважаемый такой-то такойтович перестали писать в каждом ответе — уже победа!

А ваще рыли — они крутые, пока что я ни разу не сталкивался с конторой, которая бы потянула все мои замечания и пожелания.

Хуйнаныр(11)Очко(0)

The Fast and the Furious (1)

Кароч, пришел к нам человек: «мол так и так почта ебется на магазине, в Яндекс ходит через раз».
Ну настроили почту первый раз через smtp яндекса, как-то она вяло через раз пошла.
Саппорт АдминВпс мычит, саппорт Яши мычит. Все мычат. Че делать?

Настроили ее через сервант. И все стало Ок.

mail-tester-sir

Было у меня немного свободного времени и решил я посмотреть на магазин.

Имеем:
ocstore 2.1 + july шаблон + turbo + php 5.6 + тухлый одноядерный сервант на AdminVps, минимальное количество товаров и время загрузки порядка 400-500мc на холодную. Как по мне — это в рамках, но владелец магазина — задрот, и хочет быстрее быстрого.

Ставим nginx+php-fpm c тем же 5.6, оптимизируем базу, делаем magick cache Катиному шаблону, ставим Redis, включаем OpCache.

И получаем 127 мс «на холодную» без глобального кеша Турбо:

sir_dom_cool

и 36 мс

sir_dom_turbo

Вобщем моя довольна, хозяина магазина довольна, все довольна, типа-оптимизаторы дрочут свои вялые писюны в сторонке и завидуют.

Ну еще мы сделали нормальную обработку редиректов, убрали повторяющиеся слеши и еще много вкусного по конфигу nginx.

По хорошему, магазину не хватает https, сфинкса и если совсем задротить можно пообъединять в кучу скрипты. Но во первых не просили, во вторых станет заказчику совсем дурных денег, а в данном случае вся оптимизация была проделана практически на общественных началах.

Так что, пока, 89 попугаев  Page Speed и 40-100мс TTFB — наше все.

sir-dom-page-speed

 

А теперь загадка.
Что можно сделать еще с этим магазином?

redis_image_cache, redis_session, php7, http2.

Хуйнаныр(8)Очко(0)

Seo умерло говорили они.

Помните я вам говорил, что у меня нашелся специалист в продвижении, которого мне не стыдно порекомендовать. Помните, я всегда говорил, что когда вы выбираете подрядчика — необходимо спрашивать «а что ты сделал для хип-хопа» в свои годы.

Вот вам товарищи, что делает мой специалист со свежеиспеченными магазинами:

seosceen

 

Это, как он сам говорит, в лайт-режиме. В достаточно конкурентной тематике, да еще и в МСК.

Цена вопроса — недешево. Совсем недешево. Аудит от 25, и месячный бюджет готовьте от тридцатки. Зато работает, и вам не будут рассказывать:  что, если не получится, у вас через полгода есть право заключить с нами договор еще на полгода.

Если кому нужны контакты — стучите мне по личкам на форумах.

Хуйнаныр(16)Очко(1)

Мы ебали апельсин. Ой. Нет. мы ебали SV2109, ой нет! Мы ебали VestaCP до смерти, а она не умерла.

article_1523_large

А теперь будем ебать sv2109, ну и если кому надо — можете со мной за компанию, взять апельсинку!

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

В итоге имеем vestacp + centos6 + дрвений mysql + нерабочий аккаунт + клаудфларе.
Сразу говорю — всякими непотребствами типа дропов и закладок, я не занимаюсь. В абузы народ часто бежит из-за ретивых правообладателей. А тут товарищи печатают футболочки, ну и постоянно приходят хостерам письма счастья за использование чьих-то образов.

Вобщем. Побыренькому мы все подняли завели, даже поставили свинкс, но не тут-то было. Началась какая то ебала… 30% страниц рандомно валят 502 ошибку, а  в логах пусто. Ошибка есть а в логах ее нет. Просто появляется запись client prematurely closed connection (104: Connection reset by peer)  и пиздец. Но не всегда. И не на всех страницах.

Что я только не делал, и php-fpm + nginx без апача, и версии php любые, и логи в паническое состояние — в итоге все равно хер. Что-то косячит и пиздец. Запускаешь на магазин 100 потоков на главную, на одном ядре 30% нагрузки. Запускаешь на категорию хост-трекер 80% 502 код. Ну какой то ебанный ебанидзе.

На весту было решено забить хуй и ставить любое свое окружение, если че там весь сервер с пониманием проблемы можно за 2 часа пересыпать.

Но понимание не приходило. Приполз Savage4pro — и такой. Мол ебать.. а попробуй ионкуб смени. И мы начали ебстись.
Надо же было проверить догадку — и таки блядь бинго. Отключаем ебанные стикеры от св, конченные ебанные стикеры конченючие блядь выблядские стикеры. И все работает. Из-за этого уебана у людей уже полгода хуй через пень колоду работает магазин. Я проебался 12 часов в телевизор. А ему по хуй. Чтоб блять, когда он попадет в программистский ад, он срал не переставая перфокартами размером с Арарат!

 

На 7.1 модуль от ебучего sv2109 не заводиться, на 5.6 косячит, вот с теми симтомами, которые я описал. А на 5.4 у нас не стартует mysql драйвер пхп, потому что софт на сервере с вестой у ебучих хостеров, чуть свежее чем гавно мамонта. При чем понять в чем проблема мы так и не смогли. То ли реально конфликт с кубом, то ли у него там где то упиздячивается бесконечная рекурсия.

Долго ли коротко ли, чуваки получили в итоге быстрючий магазин, который на холодную  шуршит в переделах 300 мс. Получили пипец бронебойный одноядерный сервант, который оказался дико резвым и видимо может выдержать рождественскую распродажу амазона.

И самое блять удивительное, несмотря на то что я ебал и в рот и вноса всю эту хуергу добрую половину суток в доброе время суток (АГГР), блядская веста не померла. Вот я уже с ней распрощался, думал как заебись же без нее будет жить. Ан нет  — выжила падлюка.

Вобщем итог: св — гавно, веста еще большее гавно, хотя нет, таки св больше, софорп — жирный упырь, но он св побеждает.

Всем добра а упырям перфокарту в жопу.

Хуйнаныр(15)Очко(2)

redis vs memcache в Opencart

redis

Меня часто торпедируют вопросами типа: » а если я установлю Memcache», мой магазин станет быстрее. И я всегда говорю нет.
Так как в 99% случаев у вопрошающих микромагазин, который хостится на ukraine.com.ua. А они еще те упыри и решили всем продать услугу memcache, которая типа может быть использована.

Так вот на микромагазине от мемкеша толку — нету!!!! НЕТУ!!!
И быть не может.

Чтобы вам было понятно, что это такое и зачем он используется. Что мемекеш, что файловая система, что редис — это хранилища данных по принципу (ключ)->значение.

В файловой системе ключ — это название файла — значение — это его содержимое. То же самое и в мемкеше и в редиске, просто название файла заменяется какой нить аброказяброй, которая зачастую является проивзодной функции MD5 с аргументами в виде описания признаков входящих данных, которые мы пытаемся сохранить.
Т.е. чтобы было понятно домохозяйке, кеши, которые сыпятся в подобные хранилища — это какие-то очень часто используемые данные. Если приводить простой пример таблица умножения у нас в голове — это такой же кеш. Это какие то данные, которые мы запомнили и они всегда у нас в быстром доступе. И чтобы узнать сколько будет 2+2 нам не надо долго думать, мы всегда знаем что это 4.

Вот так же и в опенкарте, вместо того чтобы искать стопицот раз в таблице с урлами значения ЧПУ, есть готовый файл уже со всем набором алиасов, и нам достаточно загрузить его в в виде массива в php, и дергать эти данные из очень быстрого внутреннего набора, а не обращаться в базу.

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

Однако. Эта технология имеет право на жизнь в ситуациях, когда кроме скорости доступа, у нас еще есть такие факторы, как время передачи данных (у нас ведь могут быть большие данные в кеше 10-20-30 мегабайт), а также количество этих наборов данных. Если у нас их больше нескольких тысяч, то доступ в памяти к такому количеству данных, в десятки раз быстрее чем в файлах.

И вот бывают магазины, у которых файл кеша с сеоурлами, весит к примеру 25+ мегабайт, или магазины с модулями, в которых какой-нибудь тупой ебливый пидар закешировал все атомарные наборы данных и запиздячил овердохуя коротких данных в кеш. И там же может быть фильтр от Soor, который своих кешей еще наработал мегабайт 60. И при каждой загрузке нам эти данные надо дернуть с диска и преобразовать из файла в php-объект. В рамках загрузки одной страницы — это много долго, и ресурсоемко. Поэтому тут нам на помощь и приходят быстрые хранилища.

У всех на слуху Memcache. Но он морально устарел — это раз. Два — при установке «из коробки» он требует недюжего конфигурирования чтобы и дыры закрыть и заставить его работать с большими данными. Но у нас есть отличная альтернатива, которая лишена этих болезней — это Redis. Мало того что у него нет проблем с размером данных, так он быстрее и обладает кучей ништяков.

Вот вы ща спросите. Ой. а у нас же у всех 2.x, а Redis поддержка только в 3.x.
На что я вам скажу, что пока вы не прочитали эти строки вы даже не знали что Даниэль сделал поддержку редиске в третьей ветке, это раз, а два. Те кто будут пытаться применять на практике мою наводку, я думаю без труда скопируют драйвер из 3.x и пихнут нужную дописку в конфиг.

За сим откланиваюсь и напоминаю, что SOFORP — жирный пидар!

Хуйнаныр(10)Очко(1)

Простота — хуже воровства

prg

Как вы относитесь к ворам?
Я думаю что все скажут плохо.

В последнее время, я несколько критично начал относиться ко времени. И все больше воспринимаю его как ресурс. Соответственно, когда кто-либо хочет украсть у меня время — у меня возникают ощущения, схожие с теми, как-будто ко мне пытаются залезть в карман и вытащить кошелек.

В голове не укладывается — почему люди, считают, что им что-то должны? Откуда у них слепая уверенность, что им все должны?

На 90% тупых вопросов, связанных с магазинами или программированием, можно найти ответ на первой странице выдачи гугла, на остальные 10 — на второй, ну или на худой конец анализируя информацию с нескольких ресурсов.

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

Тем самым, я экономлю чужое время, а также постоянно пополняю свои знания.

А всяких ленивых наглых тупорезов, очень хочется отправить в школу. Чтобы они заново научились читать писать и гуглить.

Реально из последних перлов в личках:

- А сложно редактировать шаблон?
— Нет.
— А можешь научить по тимьвюверу.

Ну заебись, я 10 лет учился, мне то легко. Только вот что делать? По тимвьюверу 10 лет учить высшей математике, теории графов, булевой логике и так далее?

Еще ситуация у товарища:

- У нас дикий админ. Он требует ваш айпи, приватный ключ, список файлов которые вы редактируете.

Вертел я таких админов. Говорят заказчику. Давайте поработаем на условиях админа, но цена X3. Нет ой. ай. в итоге минус три дня из жизни заказчика, пока он умаливает админа выделить нормальный быстрый доступ в окружение без танцев с бубнами.

Ситуации когда чего-то кому-то сделал, а потом а еще, а ой, а тут, и здесь и вот не работает. А вам что сложно помочь?

Их просто не счесть. Такое ощущение, что все считают, будто мы живем где-то в бункере, сидим без сна и отдыха и только ждем, когда нас нахлобучат какой то дополнительной хуйней, которую «тебежспециалисту» три секунды решить. Да ебаный рот. Даже если одну секунду. Это моя одна секунда а не ваша. Вот как их всех хочется табуном загнать ко мне на дачу по весне, покопать огород. Хули ж вам копать — это просто, навыков не надо.

Вобщем реально наболело.

Но есть другие ситуации, есть масса народа которым я давно и плотно помогаю по поводу и без повода на общественных началах — но это совершенно другая история.

Хуйнаныр(29)Очко(0)

Китайцы в хлам озверели с брутфорсом

Сегодня ко мне пришли мои друзья с вопросом — шеф усьо пропало. У нас лежит сервер.

Панель рисует какую дичь:

broot
Заходим, смотрим а fail2ban — просто с ума сошел и сьел всю память, которой мало, а сьел он ее потому что не успевает бороться с попытками подключения на ssh  и к ftp.

В логах за день 50 мегабайт истории попыток подключений.
Что же делать

Первое — убираем ssh под какой то рандомный порт типа 5345, если совсем паранойя — лочим доступ к ssh по ip.

Второй — убираем ftp-демон и phpmyadmin.

Третье, закрываем доступ в админ по айпи в htaccess.

Сидим слушаем тишину и радуемся, тому, что где то далеко за Гималаями, плачет маленький узгоглазый человек.

Хуйнаныр(19)Очко(0)

Настало время ахуительных историй

В опенкарт сообществе — происходит пизденс.
Вилабаджо хуячит горшки с виларибо. Мы запаслись попкорном.

Аддист пропал на хуй и положил сервер свой сервер авторизации.
Мы говорили что он чмырь. А тут он чмырь в квадрате 100500 магазов использующие его модули оказались сегодня в ауте и теперь у них гавносео!

Если вы оказались в числе жертв — инструкция по устранению последствий тут.
Но она не полная и бывают исключения — так что если приспичило — давайте раздувать и решать проблемы, я чем смогу помогу.

Из новостей мирового дурдома.

Паша-спиздел-фейсбук-дуремар-уничтожитель-седого-банкира-дегенерата сегодня высрался, практически сделал каминг-аут, что он дрочит и других радостей в жизни у него нет, ну может еще в жопу поебывается, но не похож. Подробнее тут.
Вкратце Дура советует все не бухать, не курить, не пить чай, ебашить в полный ЗОЖ.

А вот про дрочить,  ебаться и ебаться в жопу, Дура тактично умолчала. Ну хуй с ним. Вобщем никому не рекомендую уподобляться, жизнь надо прожить так, чтобы было о чем рассказать внукам.

Но на этом дурдом не закончился…

Владимир Путин предупредил об угрозах использования криптовалют.
Сцуко… Путин и Криптовалюты…
f1

f2

f3

f4

Я даже не могу это комментирвоать!!!

 

 

Хуйнаныр(8)Очко(0)

Немножко про хостинг

В последнее время просто какой то PageSpeed головного мозга — все хотят зелененькую оценку и кучу попугаев.
Ну и их есть у меня, оптимизация базы, сервера кеширование всего и вся в комплексе с  OptiPng + JpegOptim + Imagick приносят на нормальном шаблоне 90+ оценку очень часто.

Но это все реализуемо на VPS, на шаредах как правило нереально, так как параноидальные хостеры не дают ни shell_exeс ни дополнительных библиотек для оптимизации изображений.

На днях попался магазин, в котором 100 товаров, никаких фильтров, VPS там нафиг не нужен, но очень много больших картинок, которые нужны в хорошем качестве и в минимальном размере. Соответственно без дополнительных библиотек — никак.

Отправляю владельца магазина в AdminVPS задать вопрос — а нет ли случайно на шареде наших либ. И что вы думаете. Любой каприз.

В общем без особых танцев с бубнами, заменой библиотек формирование изображений и оптимизацией базы получаем:

pageSpeed

Еще раз подчеркиваю — это шаред хостинг ADMINVPS

 

Хуйнаныр(4)Очко(1)

Нормальный поиск, Sphinx и мать его Левенштейн

superhero-costumes-for-men

На сегодня, я могу с уверенностью сказать, что с оптимизацией проектов мы разобрались чуть больше чем полностью. За всю практику нашу пока не попалось ни одного проекта, который бы не поднялся.

Да, не всегда получается добиться генерации страниц в 200 мс или на сложных выборках до 1 сек, но это обусловлено бюджетами проектов на доработку и железо. В целом скажем до 5м товаров, с некоторыми ограничениями,- проблем с Opencart я не вижу.

Однако отдельно от общих методов оптимизации стоит вопрос оптимизации поиска. В целом Sphinx спасает, и в нем отлично можно использовать встроенную морфологию, отлично настраивать релевантность выдачи, он мегабыстр и поиск по 1 000 000 записей происходит моментально. Но есть одна большая проблема — это коррекция ошибок.

Читать далее

Хуйнаныр(14)Очко(1)

И опять советы дядюшки пикачу

Друзья мои и недруги. Тут давеча пришел ко мне старый заказчик и говорит мол, че делать. Хуярим хуярим а бабок больше не становиться.

Вот такой вот текст без купюр:

Добрый, блог https://ocshop.info/ — очень нравится, хочу попросить, если не сложно, напишите статью для мелких магазинов, которые не имеют в штате куча работников, и рекламный бюджет всего в 400$ в месяц, с учетом реалий 2017 куда лучше вложить деньги, контекст, часть в сеопульт, сео вообще сейчас тёмный лес, стоит ли ссылки закупать или ещё что сейчас работает, понятно, что большинство уже поняли, что нужно поисковикам: оригинальные текст, фотки, но именно куда сейчас лучше вкладывать деньги, мы вот из Минска, у нас продажи не высокие, по сравнению с россиянами, было бы полезно почитать он человека. которых хорошо знает изнутри все))))

Тут  надо отметить канеш сразу, что мне очень приятно что меня читают, и не все видят во мне злого матюкливого демона.  К тому же, мне очень сильно бы хотелось, чтобы я знал все, но это к сожалению не так, я не могу знать все. Я вижу постоянно очень разные проекты с очень разной степенью успешности и  единственный железобетонный принцип — кто работает — тот ест!

У меня есть ну скажем пять очень успешных проектов,  к которым я имею какое-то отношение, но залог успеха в них — это труд их владельцев. Кропотливый, ежедневный, тяжелый и на протяжении нескольких лет. И везде разный путь к успеху. В одном проекте успех обусловлен клиентоориентированностью и большой базой вторичных продаж, в другом огромны бюджетом в йотуб-блогеров и большим бесплатным трафиком из гугла за счет тех саммых ссылок у блогеров, в третьем ссылками в сеопульте, в четвертом очень правильным подходом к контексту. Нет универсальной таблетки. Везде надо работать и вкладывать.

Я немного знаю проект, о котором идет речь в обращении человека, цитату о котором я привел выше.

И что я могу на это все сказать.
Это Белоруссия или Беларусь, до сих пор не понимаю как правильно. Так вот в РБ вкладываться в SEO — бессмысслено по двум причинам. Во первых. Сео нынче очень дорого, во вторых рынок и конкуренция в тамошних реалиях настолько слаба, что выкупая весь тематический контекст по дешевке, можно через год в любой тематике идти выбирать Бентли.

Тут сразу должен сделать отступление и дополнить цитату (директор нам больше $400 не дает). Не хочу обижать директора, но мягко скажем, он идиот.

И вот почему. Торговля в интернете — это как игра в покер. Это инвестиции в матожидание. Грубо говоря, мы тратим доллар, и получаем в итоге прибыли на каждый доллар 80 центов. Предположим, владельцы этого магазина положили из 400 бюджета, 200 в контекст, заработали с контекста 160 долларов. Т.е. показали к примеру 10 000 обьвялений, получили 1000 человек посетителей, продали каждому пятидесятому клиенту и получили 200 продаж с каким-то средним чеком и какой то маржой, которая позволила заработать какие то деньги — ну пусть будет 160 долларов. По факту неважно.

В момент когда у них закончились деньги на счету в adwords, или в момент когда они не выкупили все ключевые слова, объявлений нет, трафика нет, продаж нет, и прибыли нет!

Т.е. контекстная реклама в данном случае — это не какая то ебала, на которую можно выделить бюджет. А это просто ебанный клондайк. Ты кладешь доллар, зарабатываешь два, или десять центов, но пока ты зарабатываешь — ты должен туда инвестировать все бабло, которое у тебя только есть, пока выхлоп от контекста положительный.

В данном случае — в РБ — это как рулетка. В которую выигрыш всегда в пользу игрока. И если можно еще накупить задешево трафика и его конвертировать в прибыль — его необходимо покупать. Бюджет должен быть неограниченным. Сколько можем столько и выкупаем. Потому что каждая копейка инвестиции — это маленькая копеечка прибыли.

А когда какой то хрен с горы пытается играть в бизьнесьмена со словами вот вам бюджет крутитесь как хотите  — это реальный тупоголовый жлоб, который рано или поздно вы нешних реалиях вынужден будет разориться.

Ну и да. Это я очень грубо описал ситуацию. На самом деле хорошая контекстная рекламная компания что в гугле что в яндексе — это минимум полгода кропотливой работе по ее настройке, аудиту и тюнингу. Минус слова, эксперименты с объявлениями, эскперименты со ставками, отслеживание конверсий и эффективности никто не отменял.
Ни одна бизнес-молодость вас этому не научит. Это или дано или платите дохрена бабла.

Но общий вывод: если у вас контекст работает даже в плюс 5% от общей стоимости, гаситесь в него по полной — потому что это бабки. 5% в месяц — это 60% в год, пойдите найдите банк, в который вы сможете положить бабло под такие проценты, а оборачиваемость бабла в торговле не месяц, а где-то пару недель — поэтому даже не 60, а все 120. Вобщем не ебите вола. Пока у вас есть куда и что вкладывать в положительное матожидание, продайте почку — но хуярте. Завтра придут монстры типа розетки или Юлмарта и заберут ваше место под солнцем!

Хуйнаныр(17)Очко(0)

Йобаной патриотичности ПСТО

У нас:
На закарпаьте грибные войны тыц.

У лагеря Виктория не было денег на систему безопасности, которая стоила 1,5 тысяч гривен тыц.

Справжні відморозки: в Києві побили дівчину за слова «Слава Україні» тыц.

Не у нас, но рядом:

Новые русские крестьяне (пидарасам и накрашенным вход воспрещён) тыц

В Томске торжественно открыли колонку с водой

У них:

Илон Маск предлагает не заряжать, а быстро менять батареи

В Google заявили о планах постройки экспериментального города
Это так — небольшая выжимка за 5 минут из топ новостей за неделю.

Зимбабве близко блять!

А еще недавно мы первыми в космос запустили человека, расщепили атом, придумали радио ииии.. этот список можно продолжать до бесконечности.
А теперь блять за грибы убивают и колонки с водой шариками украшают.
А еще какой то уебан пытается на полном серьезе упиздячить всех в культуру 19го века, призывает ебать некрасивых баб и топить избы по черному.

Этот мир ебанулся !

И на закуску!

Уйду в монастырь и выберу БДСМ!

omg_2

 

 

Хуйнаныр(10)Очко(1)

Советы дядушки Пикачу 2

Вы когда делаете магазины, учитывайте, что интернет — не резиновый и смартфоны тупые.
Уже несколько раз наблюдаю картину, то на 96 товаров в категории напиздуют еще по десятку доп изображений. А потом ой блять что-то тупит, а то что 15 мегабайт пусть и оптимизированных но почти тысячи изображений тупому ляосяомихуйоми надо обработать и показать — про это никто не думает.
И рендериться такая шляпа 5-10-15 сек в браузере.

Или еще одна мода, хуярить подкатегории в общей категории и по несколько товаров на подкатегорию.
А ниче что на 20 подкатегорий и 10 товаров из подкатегорий хуячится 800-900 запросов, и потом все эти 200 элементов херачатся в браузере, строятся в DOM и каким то образом еще должны ползать?

Думайте вобщем головой — смотрите как йотуб работает. 30-40 объектов на экран, все остальное Lazy-load.
В мобайле ваще не больше 2х десятков скринов и пиздец.

Включайте мозги ебт.

Хуйнаныр(18)Очко(0)

А что на форуме ввели ежегодную сертификацию?

soforp

Я стесняюсь спросить, а на что сертифицируют?

Сказочный пиздабол — рыли!

Это ахуенная нормализация микроклимата я щетаю.
Ебать санитары в дурдоме ждут и плачут. Это же надо такое выдумать было.
ЕЖЕГОДНАЯ БЛЯТЬ СЕРТИФИКАЦИЯ.

Динокс, окстись…

Такими темпами — это чучело скоро будет говорить, что ты  у него в детстве с рук ел.

 

Хуйнаныр(13)Очко(0)