Это закономерно.
На слабом и придушенном VPS запуск множества терминалов (как и любых других программ, требующих адекватной реакции) неминуемо приведет к задержкам даже в вызове системного таймера.
Обратите внимание, что такие тормоза (в сотни миллисекунд) и на банальном совершении сделок можно получить, используя такие VPS. Поэтому нужно реально оценивать последствия "экономии" из-за упаковки множества программ на одном VPS.
Для информации: в нашем сервисе MetaTrader Hosting Server мы все сделали, чтобы принципиально избежать задержек. Мы не тратим по 80% ресурсов на поддержание виртуализации сотни операционок для обеспечения VPS, у нас нулевой оверхед по затратам ресурсов.
Посмотрите мои объяснения: https://www.mql5.com/ru/forum/37453#comment_1161693
Что то именно с OnTimer().
Это VDS, а не VPS. И он вроде не слабый. Судя по диспетчеру задач, свободных ресурсов процессора и памяти достаточно. Тики идут в терминале нормально, даже когда с OnTimer клинит на минуты вместо 1 секунды. Попробовал цикл с Sleep(1000) внутри, стабильно выдаёт примерно 1014 ms, никаких тормозов.
Подскажите какие ресурсы винды использует именно OnTimer. Может как то можно добавить силов именно этому ресурсу винды?
Или всё же не стоит надеяться на нормальную работу OnTimer и делать по старинке цикл и Sleep(1000) внутри?
OnTimer работает через обычную Windows очередь и обычный механизм Windows таймера.
Он напрямую зависит от нагрузки на операционку, причем ждать cpu = 100% как показатель загруженности компа нельзя. VDS - это маркетинговая перелицовка VPS, никакой разницы нет.
При работе VPS тормоз можно словить в любом месте и он зачастую (без мониторинга ресурсов) невидим. Например, простейшее чтение/запись десятка байт из-за загруженности хостовой машины тормозит процессы операционки на сотни миллисекунд. Это все обычно видно в мониторе ресурсов, где дисковая задержка не 0-5 мс, а 1500-2000 мс. Чуть меньше шансов, но аналогичное можно словить на сетевой карте.
Причем в этот же самый момент системного тормоза, отдельно и независимо(никуда на диск или сеть не обращающийся) работающий поток может чувствовать себя нормально и правильно отрабатывать Sleep. До момента, пока не влезет в системный синхронный доступ к тормозящему ресурсу.
Про процессор тоже не забывайте. Обычно его 12-16-24 ядер разделяют сотня копий операционок, а видимые вам 2 ядра абсолютно виртуальные и хорошо придушены соседями.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот простейший код советника на таймере
На VDS стоит win2008 r2 standart SP1, запускал от 1 до 9 терминалов. Файл отчёта прилагаю.
Начиная с 5 терминалов барахлить. На 9 это вообще не похоже на таймер. В диспетчере задач ресурсов вроде хватает. Скрин при работающих 9 терминалах