Большое количество терминалов. Проблема

 

Всем привет.

 

Тестирую разные продукты mql и столкнулся  с проблемой зависания.

Запустил 32 терминала, подлогинил к одному серверу - начали виснуть. Временами отвисают и работают некоторое время нормально, можно спокойно открывать каждый и смотреть за его работой, но наступает время и снова начинаются зависания. При этом ничего более на сервере не запускаю. 

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

Правый нижний фрэйм (http://prntscr.com/a7dm4b)  иногда переваливает за предел и в счетчике уже отрицательные значения.

 

Может кто сталкивался с подобным? 

Для тестирования использую:

 2xE5620

32 Гб RAM

SAS

 

ПС: виснут терминалы даже при загрузке проца в 3-5% и занятости памяти на 1-2% 

 
Несколько виртуальных машин и проблема решена. Это ограничение ОС, где-то тут на форуме уже писали.
 
evillive:
Несколько виртуальных машин и проблема решена. Это ограничение ОС, где-то тут на форуме уже писали.

Мне помнится, ограничение 32 экземпляра MT4 введено Metaquotes c формулировкой вроде "Чтобы не разводили мегафермы". Проверял, 32 работают нормально на Win7 в режиме /portable, запустить еще один не удается. До введения ограничения работали до 47 MT4 под XP. Компьютеры настольные, не серверы.

Конечно, речь не шла о тестировании советников.

Поскольку в данном случае речь о сервере, а они вовсе не предназначены для интерактивной графики в 50-ти запущенных на самом сервере приложениях, вдруг здесь срабатывает аналогичное XP ограничение. При параметрах ОС по умолчанию больше 21 MT4 не грузилось либо начинали работать так медленно, что и не надо становилось. Речь о размере хипа интерактивных окон (там лежат списки окон со сведениями по Z-порядку, дочкам и родителям, ...). В реестре надо было увеличить его размер, тогда можно было работать и с 47-ю MT4:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems  параметр  Shared Section, умолчание 1024,3072,512   ставим 1024,8192,512.

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

 

c 32 терминала проблем не испытываю. Проблема в том что подконектил счета и начали висеть терминалы и отвечать через раз.

Постоянная надпись "Не отвечает" и это даже без советников.

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

Заметил что если на "глюченном"  MT4 сменить пользователя - терминал отвисает (пользователь с другого сервера).

Может ли быть проблема в том что у меня все 32 счета работают с одним демо-сервером и сервер-брокер не может обрабатывать множество запросов для одного IP или как то так?

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

 
А что с используемой памятью? Память может быть узким местом, терминалы много кушают.
 

из 32 ГБ памяти система жрет 2-3 и терминалы по 50 КБ каждый.

В отлогиненом состоянии жрет всё те же ресурсы кроме проца. 

 
testerMT4:

из 32 ГБ памяти система жрет 2-3 и терминалы по 50 КБ каждый.

В отлогиненом состоянии жрет всё те же ресурсы кроме проца. 

 

Оценка используемой памяти в 50 Кб удивительно низкая. Может, в этом дело?

12 Мб было нижним пределом для MT4 уже в 2008-2010 годах. Сейчас появилась в MQL4 функция:

TerminalInfoInteger(TERMINAL_MEMORY_USED))

Возвращает мегабайты, у меня обычно 200-300 на каждый терминал (1 график, 1 скрипт, 1 советник, история ограничена 5000 и график тоже).

 

Извиняюсь, поправка - 50 Мб

А это проверю по открытию рынка. Ибо пока рынок стоит - всё просто летает.

Запустил под 3 пользователями по 32 терминала, подключил один и тот же счет везде - пока нормально всё (установлены на каждом советники на таймере для проверки). Пойдут котировки - гляну что будет. 

 

TerminalInfoInteger(TERMINAL_MEMORY_USED) 

показывает 290 МБ

Диспетчер 50 МБ 

TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE) - вообще бред несет.

А эти функции вообще работают? 

 

Относительно памяти все сложно, диспетчер дает ее 6-7 разных видов, Вы выбрали частный рабочий набор, я обычно смотрю пиковый. При этом по словам диспетчера выделено 3-4 Гб из 16-32.

Исходя из общих правил, проверять надо тестируемые советники. Затем в сервис деск.

 
Как вариант - уменьшить количество баров в истори и на чарте, перезапустить терминалы и посмотреть результат.