Пределы терминала QUIK (память, количество вкладок, графиков, lua-скриптов)

Страницы: 1
RSS
Пределы терминала QUIK (память, количество вкладок, графиков, lua-скриптов)
 
Вопросы, по-видимому, к разработчикам и продвинутым пользователям.

В настоящий момент у меня в терминале идёт получение данных в ТТП по примерно 20 акциям и 20 фьючерсам, в таблицу обезличенных сделок идёт информация по всем акциям и фьючерсам, открыто 13 вкладок с графиками, стаканами и разного рода таблицами (всего 83 окна, включая созданные lua-скриптами), работает 12 торговых lua-скриптов (вызывают примерно раз в час функцию collectgarbage).

Перед началом вчерашней торговой сессии (дата уже сменилась на 21.06.2017) были перезаказаны данные со всеми отмеченными галочками. После завершения вчерашней торговой сессии на текущий момент (торговая дата ещё 21.06.2017) терминал занимает 3.1 Гб оперативной памяти.

Операционная система Windows 10 x64 версия 1607.

Вопросы:

1) насколько близки пределы по выделенной памяти, количеству lua-скриптов, после достижения которых будет выскакивать out of memory или появляться другие проблемы?

2) можно ли как-нибудь понять, сколько памяти тратится на работу lua-скриптов (чтобы решить, имеет ли смысл снижать её потребление)?
 
Вот тут пишут, что
Цитата
32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB).

Выходит, что предел близок. Не хотелось бы в активный торговый день, чтобы падали скрипты и терминал.
 
У меня терминал стабильно падает утром по достижении вечером объема потребленной памяти в районе 2,3 - 2,5 ГБ. Иногда не падает, но видно что "глючит" по неправильному пересчету старых портфелей на qpl.
 
Хотелось бы, всё-таки, узнать информацию от разработчиков, они же в курсе как устроены внутренности терминала.
 
Пока разработчики собираются с духом для ответов на вопросы.
Код
2017-06-25 20:18:26.086 [ERROR] not enough memory

Возможно, что утечка памяти появилась в терминале 7.12.1.10, поскольку под аналогичной нагрузкой стоит терминал 7.11, с ним всё в порядке.
 
2) можно ли как-нибудь понять, сколько памяти тратится на работу  lua-скриптов (чтобы решить, имеет ли смысл снижать её потребление)?

Пока что начал использовать collectgarbage("count") для отслеживания использования памяти внутри lua-скриптов до сборки мусора и после неё.
 
Добрый день.

Количество памяти под работу QUIK отдается 3-4 Гб, в остальном зависит от конфигурации (настроек рабочего места QUIK)
 
Вчера, за 30 минут до начала торгов, был перезаказ данных с очисткой всего. Сейчас, за 2 часа до начала торгов, QUIK занимает в памяти 2.6 Гб. Работающие скрипты занимают:
- до очередной сборки мусора: 16М+29М+38М+52М+28М+62М+10М+15М+15М+14М+0.2М+0.2М = 279.4М
- после этой сборки мусора: 12М+18М+28М+21М+17М+52М+8М+8М+8М+8М+0.1М+0.1М = 180.2М
Получается, что основное потребление памяти идёт от внутренних структур терминала, а нет от самих lua-скриптов.
Перед торгами будет сброс данных при смене торговой даты. Посмотрим, что там будет.

А вообще, кажется, что пределы по памяти у терминала (4 Гб) весьма близки. И стратегически решать проблемы можно только либо оптимизациями внутренних структур терминала, либо переходом на 64-битную версию. Предположим, что торговая активность вырастет в 2 раза. Терминал просто не переварит данные за один день, не говоря уж о работающих скриптах. Рост торговой активности наблюдаю с 2013 года: количество записей за день выросло с 6 миллионов до почти 20 миллионов, т.е. почти в 3 раза, примерно то же самое с количеством тиков по Si.

Интересно, что изменилось с момента, когда была активна вот эта тема: https://forum.quik.ru/forum8/topic432/
Особенно см. комментарии Виталия Скоробогатова.
 
Цитата
_sk_ написал:
Вчера, за 30 минут до начала торгов, был перезаказ данных с очисткой всего. Сейчас, за 2 часа до начала торгов, QUIK занимает в памяти 2.6 Гб. Работающие скрипты занимают:
- до очередной сборки мусора: 16М+29М+38М+52М+28М+62М+10М+15М+15М+14М+0.2М+0.2М = 279.4М
- после этой сборки мусора: 12М+18М+28М+21М+17М+52М+8М+8М+8М+8М+0.1М+0.1М = 180.2М
Получается, что основное потребление памяти идёт от внутренних структур терминала, а нет от самих lua-скриптов.
Перед торгами будет сброс данных при смене торговой даты. Посмотрим, что там будет.
Добрый день.

Мы можем проанализировать ваше рабочее место, если пришлете архив на quiksupport@arqatech.com
Цитата
Интересно, что изменилось с момента, когда была активна вот эта тема: https://forum.quik.ru/forum8/topic432/ (URL: https://forum.quik.ru/forum8/topic432/

В данный момент конкретику по данному вопросу дать не можем.  
 
Цитата
Мы можем проанализировать ваше рабочее место, если пришлете архив на quiksupport@arqatech.com


Боевую систему, понятное дело, прислать нет возможности. С другой стороны, можно написать скрипты, похожие по своей логике на те, что работают в боевых системах. Если несколько пользователей пришлют вам свои примеры скриптов, то можно будет сделать что-то типа стенда нагрузочного тестирования (хотя, по идее, у вас уже должен такой быть). На этом стенде гонять скрипты в большом количестве несколько дней и смотреть, когда и что глючить начинает.
 
Продолжение мониторинга после 2-х торговых дней без перезагрузки. Сейчас, за 3 часа до начала торгов, QUIK занимает в памяти 3 Гб. Работающие скрипты занимают:
- до очередной сборки мусора: 29М+39М+49М+49М+22М+57М+21М+17М+16М+16М+0.2М+0.2М = 315.4М
- после этой сборки мусора: 14М+19М+31М+21М+18М+54М+9М+9М+9М+9М+0.1М+0.1М = 193.2М

Так что ситуация более-менее стабильная и похожая на ситуацию предыдущего дня.

Вчера перед началом торгов (после смены торговой даты) терминал занимал в памяти 1 Гб.
 
Сказка кончилась. :what:

Один из мелких скриптов, тот, что занимает 0.2М и экспортирует по окончании торгов все совершённые сделки, выдал ошибку
Код
2017-06-29 02:50:32.474 [INFO ] Exporting trades...
2017-06-29 02:50:32.927 [ERROR] function: 03F7E360
2017-06-29 02:50:32.927 [INFO ] SHUTDOWN
и остановился.

В терминале висит окно с сообщением:
Цитата
Операция не может быть выполнена, т.к. недостаточно памяти.
Диспетчер задач сейчас (через несколько часов после ночного падения скрипта) показывает, что терминал занимает 2.5Гб. Сколько он занимал перед падением -- неизвестно.

Остальные скрипты занимают:
- до очередной сборки мусора: 19М+19М+20М+20М+10М+41М+7М+7М+7М+7М+0.2М=157.2М
- после этой сборки мусора: 14М+8М+15М+11М+9М+28М+4М+4М+4М+4М+0.1М=101.4М

Все остальные скрипты как-то работают, но им доверия, понятное дело нет.

Пока что диагноз такой: при непрерывной работе в течение нескольких дней на пределе занимаемой памяти в терминале что-то переполняется и он начинает глючить. В скриптах lua это проявляется в появлении ошибок, которые перехватываются с помощью xpcall и показывают (наверное) неправильный адрес функции, которую попытались вызвать.

Похоже, что терминал не способен интенсивно работать несколько дней подряд без глюков. Придётся переходить к неудобному варианту эксплуатации, когда каждый день перед торгами терминал запускается заново.  :sad:
 
При попытке закрыть диалоговое окно и остановить скрипты терминал упал (в папке dmp ничего нет), а Windows стала безуспешно искать способы устранения проблемы. После перезапуска и скачивания данных терминал занимает 300 Мб памяти.

Просьба к разработчикам: создайте у себя стенд для нагрузочного тестирования, включающий, скажем,
* 20 вкладок с 50 графиками разных таймфреймов;
* 20 скриптов, которые делают какую-то реальную работу с DataSource объектами, выводят инфу в таблицы и передают данные из потока коллбэков в main-поток с помощью очередей;
* 50 разных таблиц (ТТП по 20 акциям+20 фьючерсам+валюте+индексам, истории параметров, всех обезличенных сделок по всем инструментам и т.п.).
и погоняйте его в течение нескольких дней. Наверняка повылезают ошибки.
 
Здравствуйте,

Для диагностики, более детального разбора все таки потребуется ваше рабочее место QUIK, без ключей доступа и файла chm. Это ускорит решение проблемы.  
 
Цитата
Для диагностики, более детального разбора все таки потребуется ваше  рабочее место QUIK, без ключей доступа и файла chm. Это ускорит решение  проблемы.

Как уже было указано выше, боевую систему, понятное дело, прислать нет возможности. Оправил электронной почтой стенд для тестирования.
 
Получили, спасибо.  
 
Уважаемая поддержка!!

так что с 64 битной версией квик в новом 2018 году? хоть когда нибудь вы сможете обновить умирающее свое детище? Работать просто невозможно становится в квике с парой луаскриптов. Сообщения что недостаточно памяти просто замучали!
с каждой новой версией квика 7.12 потом 13 и 14 и памяти остается все меньше и меньше а работать все сложнее и сложнее что хочется выбросить это все нахрен и перейти на более адекватную программу.
на нормальной мощной RAM64гб машине невозможно работать в этой убогой программе. эта узкая дверь просто не дает прохода и возможности для развития!

Сколько будет продолжаться этот прошлый век? не хотите раздавать бесплатно так продавайте за деньги! но сколько можно все это продолжать!
 
Может уже был такой вопрос, но почему разработчики не сделают Квик x 64? Тем более 2018г , у всех по 8 и более ГБ памяти, а люди пишут о проблемах с памятью?
 
Vladimir,
Да такой вопрос уже был
https://forum.quik.ru/messages/forum8/message3668/topic432/#message3668
Страницы: 1
Читают тему
Наверх