Шлюз для капмонстра и исправление проблем с зависанием

Есть желающие купить?

  • Не интересует - у меня маленький объем, КМ справляется

    Голосов: 0 0,0%

  • Всего проголосовало
    3

OneManArmy

Новичок
Регистрация
07.07.2018
Сообщения
2
Благодарностей
1
Баллы
3
После недавних обновлений - капмонстр начинает виснуть как только нагрузка возрастает до определенного уровня. То есть, полностью виснет интерфейс, и капчи начинают решаться с большими задержками. А потом он начинает понемногу жрать память, пока не выжрет всю, и случается OutOfMemoryException.

Общение клиента с поддержкой закончилось тем, что они предложили переустановить драйвер звуковой карты... на Windows Server(!)... на VPS(!).

Описание механизма проблемы

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

Решение

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

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

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

Если народ соберется - то цена $20 (исходник будет зашифрован).
 
  • Спасибо
Реакции: webkosmos

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Почему в вариантах опроса нет: "Нет, у меня капмонстр отлично справляется"?
 
  • Спасибо
Реакции: one и zortexx

FastSpace

Client
Read only
Регистрация
05.04.2018
Сообщения
665
Благодарностей
240
Баллы
43

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Это решается элементарно, учетом отправленных каптч. Храним количество каптч в глобальной переменной, перед отправкой следующей проверяем, не превышено ли значение. После разгадывания капчи, счетчик в глобальной переменной уменьшаем.

PS.: в голосовании не хватает пункта: "Идите лесом, мы сами тут умные" :D
 
  • Спасибо
Реакции: Koqpe

OneManArmy

Новичок
Регистрация
07.07.2018
Сообщения
2
Благодарностей
1
Баллы
3
PS.: в голосовании не хватает пункта: "Идите лесом, мы сами тут умные"
Тело, наверное, не понимает, что запросы асинхронные. Почему бы вам не написать это элементарное решение, и не выложить сюда бесплатно? Поможете людям, прокачаете понты.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Тело, наверное, не понимает, что запросы асинхронные. Почему бы вам не написать это элементарное решение, и не выложить сюда бесплатно? Поможете людям, прокачаете понты.
Тушка, по всей видимости, черезчур обеспокоена понтами и асинхронностью своего бреда. Напишу прямым текстом, идите лесом, беспонтовый гражданин со статусом новичек. Направление подсказывать не буду, - сами догадаетесь. Чай, не ребенок, хотя сейчас как раз каникулы.
Щастья.
 

TopSerf

Client
Регистрация
12.02.2017
Сообщения
1 403
Благодарностей
203
Баллы
63
Капмонстр нужно как минимум на 64битную версию переводить, у 32 ограничение по потокам как таковых вообще... макс где то 1500 одновременных потоков тащит, у 64бит версии приложений этой проблемы нет.
OutOfMemoryException.
Оно же..
upload_2018-7-25_0-4-23.jpeg

И пофиг что памяти может быть свободно десятки гигов..
 

icealex

Client
Регистрация
18.11.2015
Сообщения
108
Благодарностей
8
Баллы
18
Такое дополнение к капмонстру решило бы загруженность 1 машины, была бы возможность распределить нагрузку между серверами. А то на 1 машине выше головы не прыгнешь =) все упирается в проц.
 

a3r

Новичок
Регистрация
13.02.2019
Сообщения
12
Благодарностей
4
Баллы
3
хз, у меня монстер(или винда) иногда крашится, поэтому купил две, а перед ними поставил самописную проксю
заодно и метрики для прометея/графаны отдаёт. Берите не жалко https://hub.docker.com/r/a3rght/caproxy
 
  • Спасибо
Реакции: BAZAg

a3r

Новичок
Регистрация
13.02.2019
Сообщения
12
Благодарностей
4
Баллы
3
43732

...и образ докера там же, чтоб не компилить
 
  • Спасибо
Реакции: BAZAg и sandz

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)