- Регистрация
- 07.07.2018
- Сообщения
- 2
- Благодарностей
- 1
- Баллы
- 3
После недавних обновлений - капмонстр начинает виснуть как только нагрузка возрастает до определенного уровня. То есть, полностью виснет интерфейс, и капчи начинают решаться с большими задержками. А потом он начинает понемногу жрать память, пока не выжрет всю, и случается OutOfMemoryException.
Общение клиента с поддержкой закончилось тем, что они предложили переустановить драйвер звуковой карты... на Windows Server(!)... на VPS(!).
Описание механизма проблемы
Когда капчи приходят быстрее, чем он может их решить - то он принимает новые, решает их, но при этом не отдает уже решенные - и они накапливаются где-то внутри него, увеличивая таймаут. Как будь-то потокам интерфейса и сети отдан слишком низкий приоритет, по сравнению с решающими, и нет никакого механизма, который очищал бы исходящий буффер.
Решение
Написана программа-шлюз на Node, которая принимает капчи, и отправляет их в капмонстр. Вся очередь теперь внутри шлюза, и он сам регулирует, во сколько потоков отправлять капчи в КМ. Это полностью вылечило проблему - ничего не виснет, и капчи решаются максимально быстро.
Текущая версия шлюза написана под клиента - она сама обрабатывает ключи, пишет логи, меняет тело запроса перед отправкой в КМ, там свой формат запросов и ответов, и некоторая дополнительная функциональность. Но на продажу всего этого не будет: извините, но скрипт предоставляет слишком много возможностей, так что обязательно найдется мошенник, который своей деятельностью нанесет вред и людям, и клиенту. Преценденты уже были, всякие разные.
Но если найдется несколько желающих - то могу написать лайт-версию, с одной только очередью, чтобы капмонстр перестал виснуть под большой нагрузкой. Но учитывайте, что эта штука станет бесполезной, если программисты Зенно догадаются исправить их продукт. Кстати, предлагаю администрации показать этот пост программистам, и отписаться - собираются ли они решать проблему, и когда.
Если народ соберется - то цена $20 (исходник будет зашифрован).
Общение клиента с поддержкой закончилось тем, что они предложили переустановить драйвер звуковой карты... на Windows Server(!)... на VPS(!).
Описание механизма проблемы
Когда капчи приходят быстрее, чем он может их решить - то он принимает новые, решает их, но при этом не отдает уже решенные - и они накапливаются где-то внутри него, увеличивая таймаут. Как будь-то потокам интерфейса и сети отдан слишком низкий приоритет, по сравнению с решающими, и нет никакого механизма, который очищал бы исходящий буффер.
Решение
Написана программа-шлюз на Node, которая принимает капчи, и отправляет их в капмонстр. Вся очередь теперь внутри шлюза, и он сам регулирует, во сколько потоков отправлять капчи в КМ. Это полностью вылечило проблему - ничего не виснет, и капчи решаются максимально быстро.
Текущая версия шлюза написана под клиента - она сама обрабатывает ключи, пишет логи, меняет тело запроса перед отправкой в КМ, там свой формат запросов и ответов, и некоторая дополнительная функциональность. Но на продажу всего этого не будет: извините, но скрипт предоставляет слишком много возможностей, так что обязательно найдется мошенник, который своей деятельностью нанесет вред и людям, и клиенту. Преценденты уже были, всякие разные.
Но если найдется несколько желающих - то могу написать лайт-версию, с одной только очередью, чтобы капмонстр перестал виснуть под большой нагрузкой. Но учитывайте, что эта штука станет бесполезной, если программисты Зенно догадаются исправить их продукт. Кстати, предлагаю администрации показать этот пост программистам, и отписаться - собираются ли они решать проблему, и когда.
Если народ соберется - то цена $20 (исходник будет зашифрован).