Не надо создавать на таком физическом сервере никаких виртуалок ни в коем случае.
Вы так только истратите ресурсы на поддержание операционок. Почитайте вот тут объяснения, сколько тратится системных ресурсов на множественной виртуализации.
Тестер торговых стратегий запускается в виде отдельных процессов с четким учетом NUMA архитектуры. То есть, процессы тестера автоматически распределяются на NUMA ноды самим терминалом.
Мы механизм правильного распределения ресурсов в NUMA окружении отработали много лет назад.
Если речь о сдаче в аренду расчетных мощностей, то все остается в силе. Запустив 32 агента как независимые сервисы, вы отдаете операционке право автоматически их распределить по NUMA нодам.
Посмотрите на практике как все будет работать. В крайнем случае можно CPU Affinity вручную раскидать для процессов.
Не надо создавать на таком физическом сервере никаких виртуалок ни в коем случае.
Вы так только истратите ресурсы на поддержание операционок. Почитайте вот тут объяснения, сколько тратится системных ресурсов на множественной виртуализации.
Тестер торговых стратегий запускается в виде отдельных процессов с четким учетом NUMA архитектуры. То есть, процессы тестера автоматически распределяются на NUMA ноды самим терминалом.
Мы механизм правильного распределения ресурсов в NUMA окружении отработали много лет назад.
Если речь о сдаче в аренду расчетных мощностей, то все остается в силе. Запустив 32 агента как независимые сервисы, вы отдаете операционке право автоматически их распределить по NUMA нодам.
Посмотрите на практике как все будет работать. В крайнем случае можно CPU Affinity вручную раскидать для процессов.
Так мне виртуалки нужны в работе, без них никак. Меня больше интересует, как правильно виртуалки создать, чтоб все нормально работало в плане аренды мощностей и меня никто не банил за нарушение правил.
Я пока вижу 3 варианта:
1) 2 виртуалки по 8 ядер с жестким указанием привязки к ядрам процессора, чтоб не получилось, что в двух виртуалках используются ядра одного и того же процессора. И по 8 агентов соответственно на каждую виртуальную машину (так сейчас делаю)
2) 2 виртуалки по 16 ядер также с жесткой привязкой к разным процессорам, но уже включая гипертрейдинговые ядра. И также по 8 агентов в каждую виртуалку с указанием CPU Affinity на физические ядра. (этот вариант на тот случай, если агентам нужно видеть сколько всего ядер в компьютере, включая гипертрейдиноговые)
3) 1 виртуалка на все 32 потока и операционка сама пусть выбирает, куда разместить агентов или привязываю ручками с помощью CPU Affinity. И запускаю в ней 16 агентов (по одному на каждое физическое ядро).
Последний самый медленный вариант, т.к. в этом случае в операционку не передается информация о том, к какому процессору принадлежит тот или иной участок оперативной памяти и операционка будет использовать память без разбора и обращаться к памяти соседнего процессора через шинц QPI, вместо памяти текущего процессора.
------------
Тут в принципе больше интересует, умеет ли агент Metatester определять из виртуалки по серийному номеру или еще какой-то информации, что перед ним разные физические процессоры на двух виртуалках, а не один и тот же. Соответственно, если умеет, то тогда самыми быстрыми будут первые 2 варианта и их можно использовать. Если же не умеет различать процессоры сквозь гипервизор VMWare, то тогда скорее всего останется только использовать вариант 3 или всего одну виртуалку с ядрами одного только процессора.
Если речь о сдаче в аренду расчетных мощностей, то все остается в силе. Запустив 32 агента как независимые сервисы, вы отдаете операционке право автоматически их распределить по NUMA нодам.
Посмотрите на практике как все будет работать. В крайнем случае можно CPU Affinity вручную раскидать для процессов.
Вы написали 32 ? А разве можно по вашим правилам на гипертрейдинговые виртуальные ядра запускать агентов? Вроде у вас написано, что можно только один агент на одно физическое ядро.. Или я ошибаюсь?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Дано:
Имеюся двухпроцессорные сервера с Xeon 2650v2 ( в каждом 8 ядер/16 потоков, итого 16 ядер/32 потока ) и 512Гб оперативы
Вопрос к разработчикам, если я в VMWare ESX создаю для каждой NUMA ноды отдельную виртуальную машину с 8-мью ядрами и жесткой привязкой к ядрам ( в настройках первой виртуальной машины указываю ядра 0,2,4,6,8,10,12,14, во второй 16,18, 20, 22, 24, 26, 28, 30) и память выделяю по 192 Гб каждой
Делается это для того, чтоб VMWare ESX использовала для каждой виртуальной машины только память одной NUMA ноды, что увеличивает быстродействие приложений в каждой виртуалке примерно на 20-30%, по сравнению с вариантом, если просто сделать одну виртуалку под все ядра и всю память.
Далее я устанавливаю в каждой виртуалке по 8 агентов Metatester.
Теперь вопрос: не будет ли Metaquotes считать, что у меня всего один процессор, и что я выделил для каждой виртуалки по 8 потоков одного процессора? Что нарушает правила использования агентов для вознаграждения. Просто замечал, что на одну виртуалку практически не приходит заданий метатестерам, в отличие от второй.
И как правильно распределить агентов между процессорами, когда их несколько, чтоб не схватить какой-нибудь бан или еще что-то подобное?