Проблема с оперативной памятью Lua на Windows Server 2019

Страницы: 1
RSS
Проблема с оперативной памятью Lua на Windows Server 2019
 

Здравствуйте!

Использую коннектор QUIKSharp для соединения своего робота на C# с Квиком. До того момента, когда я решил арендовать сервер под Windows Server 2019 и запустить все там, никаких проблем не было. Периодически менялись версии терминала по мере обновления у брокера, но все замечательно работало около полугода или больше. Неделю назад заказал сервер, установил туда Quik версии 9.2.3.15, закинул коннектор, робота, все запустил, и спустя какое-то время система стала сильно тормозить. Обнаружил, что Квик занимает слишком много оперативной памяти, причина оказалась в скрипте коннектора QUIKSharp. Поднял память сервера с 3 до 4 Гб, но он занимает все, что найдет, и сервер падает.

Сначала думал, что дело в роботе, потом думал, что дело в коннекторе, но все и по сей день без нареканий работает на двух компах под Windows 10, даже если не выключать все несколько суток, кстати и сам только что запущенный терминал с одинаковыми настройками и без скрипта на них занимает раза в два меньше памяти (около 150 - 250 Мб против 500 на сервере). Все происходит независимо от подключения робота, хотя с ним процесс протекает быстрее, просто в определенный момент (иногда почти сразу, иногда спустя пару минут) память, используемая скриптом перестает освобождаться и дальше он только разрастается.

Повторюсь, на Win10 никаких проблем нет. Прошу помочь и подсказать, какое отличие серверной машины или же операционки Windows Server 2019 от стационарного компа или Windows 10 приводит к тому, что на первых QLua перестает справляться с уборкой мусора. Может, не установил туда что-то или не настроил?

 
Цитата
Руслан написал:
Здравствуйте!   Использую коннектор QUIKSharp для соединения своего робота на C# с Квиком. До того момента, когда я решил арендовать сервер под Windows Server 2019 и запустить все там, никаких проблем не было. Периодически менялись версии терминала по мере обновления у брокера, но все замечательно работало около полугода или больше. Неделю назад заказал сервер, установил туда Quik версии 9.2.3.15, закинул коннектор, робота, все запустил, и спустя какое-то время система стала сильно тормозить. Обнаружил, что Квик занимает слишком много оперативной памяти, причина оказалась в скрипте коннектора QUIKSharp. Поднял память сервера с 3 до 4 Гб, но он занимает все, что найдет, и сервер падает.   Сначала думал, что дело в роботе, потом думал, что дело в коннекторе, но все и по сей день без нареканий работает на двух компах под Windows 10, даже если не выключать все несколько суток, кстати и сам только что запущенный терминал с одинаковыми настройками и без скрипта на них занимает раза в два меньше памяти (около 150 - 250 Мб против 500 на сервере). Все происходит независимо от подключения робота, хотя с ним процесс протекает быстрее, просто в определенный момент (иногда почти сразу, иногда спустя пару минут) память, используемая скриптом перестает освобождаться и дальше он только разрастается.  Повторюсь, на Win10 никаких проблем нет. Прошу помочь и подсказать, какое отличие серверной машины или же операционки Windows Server 2019 от стационарного компа или Windows 10 приводит к тому, что на первых QLua перестает справляться с уборкой мусора. Может, не установил туда что-то или не настроил?
Н-да, к сожалению телепатией не обладаю.
Если хотите помощи, то выкладывайте для начала что и сколько занимает, как загружен процессор, сколько у вас свободной памяти, когда квик не работает.
Как вы запускаете сборку мусора. Как и что освобождаете из ненужного.
Попробуйте для начала отключить все бумаги и особенно опционы, которыми не пользуетесь.
 
Цитата
Руслан написал:
отличие серверной машины или же операционки Windows Server 2019 от стационарного компа или Windows 10
На сервере, как правило, RAID и размер кластера в разы больше, чем 4к на домашнем компе, может файла подкачки не хватает, а не памяти? Тогда увеличить своп-файл кратно размеру кластера. По умолчанию у него лимит 1.5 размера ОЗУ, надо поставить сильно больше.
 
Спасибо nikolz и Anton за оперативную реакцию.
Цитата
Н-да, к сожалению телепатией не обладаю.
Если хотите помощи, то выкладывайте для начала что и сколько занимает, как загружен процессор, сколько у вас свободной памяти, когда квик не работает.
Действительно мало информации передал, постараюсь восполнить, если нужно что-то дополнительно, скажите.
Конфигурация сервера такая:
Windows Server 2019 Standard
Intel® Xeon® CPU E5-2658A v3 // 2 x 2.2ГГц // Сокетов: 1 // Виртуальные процессоры: 2
4Гб RAM, 40Гб SSD,
1IP.
Что касается вопроса о том, что и сколько занимает, если я правильно его понял, вот списки процессов из powershell
1) Без запущенного квика  - processes
2) С запущенным квиком, здесь как раз видно, что процесс квика занимает больше 500 Мб  - processes1
3) С запущенным квиком и запущенным скриптом, когда он успел отожрать уже около 300 Мб - processes2
К сожалению, не нашел способа прикреплять файлы к сообщению, поэтому скинул их в файлообменник Списки процессов.

По вопросу поведения процессора и памяти, когда квик не работает, не знаю, насколько полная информация и за какой промежуток времени нужна, поэтому сделал скрины из диспетчера задач:
[img]file:///C:/Users/%D0%94%D0%BE%D0%BC/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA2[/img]
[img]file:///C:/Users/%D0%94%D0%BE%D0%BC/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA3[/img]

А это процессор во время запуска квика и авторизации:
[img]file:///C:/Users/%D0%94%D0%BE%D0%BC/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA5[/img]

Здесь нормальное поведение скрипта во время работы на домашнем компе, где тоже стоит квик версии 9.2.3.15 (максимум память доходит примерно до 20 Мб и всегда сбрасывается до около 200 Кб, колеблясь в этом диапазоне).
[img]file:///C:/Users/%D0%94%D0%BE%D0%BC/Desktop/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA1[/img]
А вот результат работы на сервере за несколько минут до его падения.
[img]file:///C:/Users/%D0%94%D0%BE%D0%BC/Desktop/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA[/img]
Цитата
Как вы запускаете сборку мусора. Как и что освобождаете из ненужного.
Сборку мусора вручную не запускаю, коннектор взят здесь https://github.com/finsight/QUIKSharp, раньше даже не задавался этим вопросом, поскольку проблем не возникало, просто примерно подозреваю, что дело в этом, но, может быть, это не так.

Цитата
Попробуйте для начала отключить все бумаги и особенно опционы, которыми не пользуетесь.
Опционами не пользуюсь, доска опционов давно удалена. В терминале всего несколько таблиц для контроля за счетом и позициями, а также 4 вкладки по одной на инструмент, в каждой по графику и стакану. По поводу отключения всех бумаг уточните, пожалуйста. Имеется в виду удаление всех вкладок с инструментами?

Цитата
На сервере, как правило, RAID и размер кластера в разы больше, чем 4к на домашнем компе, может файла подкачки не хватает, а не памяти? Тогда увеличить своп-файл кратно размеру кластера. По умолчанию у него лимит 1.5 размера ОЗУ, надо поставить сильно больше.
Было установлено динамическое управление файлом подкачки и объем стоял около 1150 Мб, я отключил и установил диапазон от 4 до 6 Гб. К сожалению, не помогло, проблема повторяется. Файловая система у единственного диска C вроде указана NTFS с размером кластера 4 Кб. Или Вы имели в виду что-то другое и файл подкачки надо еще увеличить?
 
Похоже, я не разобрался с тем, как прикреплять изображения, так что и их скину в файлообменник Изображения
 
Цитата
Руслан написал:
имели в виду что-то другое
Думал железный сервер. А на скрине вижу, что виртуальный. Тогда и "кластер" у него виртуальный и рассуждение неприменимо. По существу проблемы надо автора коннектора подтягивать, как он там задумывал никто кроме него не знает.
 
Цитата
Руслан написал:
Похоже, я не разобрался с тем, как прикреплять изображения, так что и их скину в файлообменник  Изображения
1) Посмотрите в Заказ данных ->поток котировок: инструментов выбрано, параметров выбрано.
2)  Попробуйте следующее:
- посмотреть сколько памяти занимает квик;
-свернуть все окна в терминале квик;
-  посмотреть сколько памяти занимает квик.
 
 какие индикаторы Вы отображаете?
 
Если используете тики, попробуйте их отключить.
 
Спросите у автора скрипта коннектора QUIKSharp о данной проблеме. Возможно Вы не первый.
 
В качестве совета на будущее.
Выкиньте коннектор QUIKSharp .
В вашем распоряжении есть DDE и API C для LUA , mapping (https://habr.com/ru/post/320446/).
Это самые быстрые способы передачи данных в сторонние программы роботов.
 
возможно, что у Вас падает не из-за памяти, а из-за зависания в расчетах робота.
Страницы: 1
Читают тему (гостей: 1)
Наверх