Всего 123 793 комментария

Володя
13 февраля 2024, 21:14
+5
Отписываюсь по тестированию, тестировал
— на modhost.pro/ на тарифе разработка, сгенерировал 500 000 записей уникальных сессий с 70% ботов.
— выделенный сгенерировал 2 000 000 записей уникальных сессий с 70% ботов.

Далее по тексту режим:

standart — стандартный запрос на удаление что используется в modSessionHandler
$this->modx->removeCollection(Session::class, [
    'access:<' => time() - $this->gcMaxLifetime
]);

ext — запрос на удаление что используется в ExtSessionHandler

Сразу стало заметно тормоза:
Session cleanup time for mode «standart»: 0.0150 s
Session cleanup time for mode «ext»: 3.3543 s

Был один запрос с несколькими условиями github.com/vgrish/ExtSession/blob/490dfc4a7a8f1d1dd18a988573f5b607fadc457c/core/components/extsession/src/ExtSessionHandler.php#L180-L204

Разбил на несколько, стало чуть получше но все равно не то.
Добавил общий индекс на 3 колонки github.com/vgrish/ExtSession/blob/8223ff63e5574b8697fcf0eb66e55c93eaba7fd6/core/components/extsession/schema/extsession.mysql.schema.xml#L36-L40

Session cleanup time for mode «ext»: 1.3543 s — Тоже не фонтан.

Перекинул колонки github.com/vgrish/ExtSession/blob/8223ff63e5574b8697fcf0eb66e55c93eaba7fd6/core/components/extsession/schema/extsession.mysql.schema.xml#L8-L10 перед колонкой data

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

И вот тут уже стало совсем хорошо
Session cleanup time for mode «ext»: 0.0029 s

Так что с помощью тестов удалось найти слабое место и исправить ситуацию. LIMIT Подбирается опытным путем в зависимости от посещаемости сайта и мощности сервера. По умолчанию использовал 5000.
Дмитрий
13 февраля 2024, 17:38
0
После инсталляции:

[Tue Feb 13 17:36:03 2024] [error] [client 5.142.177.134:0] PHP Fatal error: Uncaught Error: Class «uagent_info» not found in /home/p/prozon/new.prozon.ru/sys/cache/includes/elements/modplugin/41.include.cache.php:194\nStack trace:\n#0 /home/p/prozon/new.prozon.ru/sys/model/modx/modscript.class.php(76): include()\n#1 /home/p/prozon/new.prozon.ru/sys/model/modx/modx.class.php(1674): modScript->process(NULL)\n#2 /home/p/prozon/new.prozon.ru/sys/model/modx/modresponse.class.php(83): modX->invokeEvent('OnWebPagePreren...')\n#3 /home/p/prozon/new.prozon.ru/sys/model/modx/modrequest.class.php(138): modResponse->outputContent(Array)\n#4 /home/p/prozon/new.prozon.ru/sys/model/modx/modrequest.class.php(122): modRequest->prepareResponse()\n#5 /home/p/prozon/new.prozon.ru/sys/model/modx/modx.class.php(1461): modRequest->handleRequest()\n#6 /home/p/prozon/new.prozon.ru/public_html/index.php(54): modX->handleRequest()\n#7 {main}\n thrown in /home/p/prozon/new.prozon.ru/sys/cache/includes/elements/modplugin/41.include.cache.php on line 194, referer new.prozon.ru/adm/?a=workspaces
Сергей
13 февраля 2024, 15:23
0
Что-то первое знакомство не задалось(
Решил установить на сайт (у сайта изменены пути) при установки оба компонента SendIt и flatfilters, assets установились в нужную папку (она у меня по другому называется) а вот core создал свою папку core. Не беда перенес в ручную) Конфик появился, могу его создать, НО не могу удалить и не могу и проиндексировать. В логах ошибка Uncaught (in promise) SyntaxError: Unexpected end of JSON input at functions.min.js:1:188
На чистую систему не ставил, сказать будет работать или нет, не могу. Если все должно работать как на видео, то это круто. Но хотелось бы развития и увидеть функционал SeoFilter и может даже какой ни будь умный поиск.
И да у SendIt почему-то по умолчанию стоит путь assents (мне кажется большинство их меняет, с целью безопасности).
Кирилл
12 февраля 2024, 22:35
0
на MODX 3 нету проекта с высокой нагрузкой для теста(
Кирилл
12 февраля 2024, 22:34
0
Под юзерами я имел в виду трафик на сайте согласно Яндекс Метрики
А зарегистрированных около ~35 тысяч было. Это было больше года назад сейчас всех данных не вспомню, особенно по строкам

Помню только что как только я переключил с smartSessionHandler на стандартный modSessionHandler — сразу начало работать как нужно :)

Я обсужу с Заказчиком такой тест — и смогу в будущем поделиться данными.

По настройкам было выставлено так:
smartsessions_authorized_users_gc_maxlifetime = 2592000
smartsessions_bot_signatures = DataForSeoBot|Googlebot|YandexBot|DotBot|bingbot|Mail.RU_Bot|PetalBot|MegaIndex.ru|YandexDirectDyn|Adsbot|SemrushBot|facebookexternalhit|SEO|Spider|YaDirectFetcher|BLEXBot|AhrefsBot|YandexMobileBot|MJ12bot|Barkrowler|crawler|YandexMetrika|Applebot|YandexMarket|python-urllib3|vkShare|UptimeRobot|Pinterestbot
smartsessions_bots_gc_maxlifetime = 259200
Наумов Алексей
12 февраля 2024, 20:36
+1
Просто юзеров или зарегистрированных?

На сколько строк таблица сессий набивалась?.. интересно прост :) Я точно не тестировал на объемы, у меня крутиться на сайтах с посещаемостью до 5000 в сутки — это 150 тыс. посетителей в месяц…
Ну и вообще, по поди какой-нибудь индекс нужно добавить или выборку улучшить, наверняка 1 узкое место
Володя
12 февраля 2024, 19:52
0
Добрый вечер. Нет, тестирования под нагрузкой не проводилось. С удовольствием поучавствую в тестировании — обращайтесь.
Потому что на smartSessions при сроке жизнь 1 месяц, и большом количестве посещений (около полумиллиона юзеров в месяц) —
В каком месте тормозило?
Кирилл
12 февраля 2024, 19:42
0
Приветствую
Вопрос, а проводилось ли тестирование работы под нагрузкой?
Потому что на smartSessions при сроке жизнь 1 месяц, и большом количестве посещений (около полумиллиона юзеров в месяц) — сильно тормозило проект. Сильно это измерялось в секундах вроде. Боты исключались понятное дело.
Андрей
12 февраля 2024, 14:56
0
Добрый день! Подскажите, а данный модуль не совместим с modx 3? Приобрели модуль, а в поиске его не находит (ключ апи подключен)

vit
vit
12 февраля 2024, 12:44
0
Чтобы вывести конкретную опцию нужно подключить сначала &toSeparatePlaceholders
В mFIlter2
Например. Если укажите
&
toSeparatePlaceholders=>'my_'
То для вывода нужно использовать
{'my_razmer' | placeholder}
Вячеслав Варов
11 февраля 2024, 13:47
0
pThumb кэширует все ок, просто почему-то при обычной загрузке и Ajax разные кэши изображения

/assets/components/phpthumbof/cache/potreb_preview.19cb9a5166b7c3afe3d9d6c584abd4be.jpg — обычная

/assets/components/phpthumbof/cache/potreb_preview.48445472a51abf0072eea4c9ab7cf72a.jpg — Ajax

попробовал phpThumbOn он работает с mfilter2 и реально помогло far=0 спасибо!
Вячеслав Варов
11 февраля 2024, 13:20
0
OnParseDocument заработало с {'param' | lexicon}
Спасибо!
Евгений Webinmd
11 февраля 2024, 13:18
+1
попробуйте OnParseDocument и заменить
{'param' | lexicon}
на

[[%param]]
Алексей Смирнов
11 февраля 2024, 11:35
1
+1
Ну так я о чем и говорю.
Вы же говорите о проблеме что фото постоянно заново генерятся. Или вы решили уже проблему и все хорошо?
Просто в phpThumbOn нет такой проблемы и прозрачность по-моему фиксилась far=0. Попробуйте.
Вячеслав Варов
11 февраля 2024, 09:15
0
сайт по факту не является магазином в привычном понимании, это портал с предоставлением услуг, каждая услуга как товар, нет обычного понимания галлереи, каждая страница услуги как отдельный лендинг с наполнением, всего на сайте около 40 секций которые заполнены через migx

Соответственно, мне не совсем подходит генерация миниатюр через msGallery поскольку каждый блок имеет свой размер изображений, и тогда мне для универсальности нужно генерить каждую картинку во всех возможных вариациях на сайте помноженное на 4 (webp retina/webp/jpg retina/jpg) по мне так это оч много) + адаптивные картинки, некоторые секции имеют разные картинки на десктоп/таблет/мобайл, я все это добро вставляю через
<picture><source media.....</picture>


В сторону phpthumbon он работает аналогично с pthumb однако он не переваривает конвертацию png в web с сохранением прозрачности (всегда добавляет белый фон)
Алексей Смирнов
10 февраля 2024, 16:19
0
Ничего не нужно докручивать.
есть 2 пути.
Минишоповский (заранее сгенериной) ИЛИ phpThumb(Of|On|и т.д.) снипет-пакетом.
В любом случае используется расширение входящее в MODX — pThumb. И что минишоп, что пакеты phpThumb используют эту библиотеку.
Поэтому если решать через минишоп, то вписать все настройки необходимых миниатюр в спец. конфиг и перегенерировать это дело.
Либо без минишопа использовать, например phpThumbOn для геренрации миниатюр по факту.
Если сайт мелкий совсем — до 100 товаров, то не критично и можно использовать последний вариант.
НО если товаров много и планируется увеличение, то генерировать ЛУЧШЕ фотки заранее.
Для одной фотки в админке можно сделать так:

Для большого кол-ва есть в новом минишопе автообновление фоток.
Так же в handyShop теме так же есть перегенерация всех фоток на сайте.
Для больших магазинов она займет время, если требуется прям кординально все поменять по превьюшкам.
Как-то так.
Вячеслав Варов
10 февраля 2024, 12:49
0
а ну есть msGallery2 который для всех типов ресурсов modx однако вопрос как у него с генерацией webp с прозрачным фоном, ну и я на сколько знаю он генерит миниатюры исходя из настроек, в моем случае приходится брать размер картинки, и формировать из нее исходя из ее размера 1 webp для ретины затем в два раза меньше разрешение 1 webp для обычных экранов и еще 2 jpg/png для retina и обычных экранов, пока только pThumb с этим справляется однако очень медленно работает фильтрация поскольку mfilter2 пересоздает изображения в чанках где есть pthumb а не использует кэширование картинки, которые уже ранее были сгенерированы, отсюда вывод что надо как-то докручивать связку mfilter2 + pthumb