Несколько rphost в многопроцессорной системе

1. user1274184 07.11.24 11:38 Сейчас в теме
Есть сервер с 2 Xeon Gold 6146, то есть 2*12 ядер. Два NUMA узла. Лицензия проф.

При запуске только одного рабочего процесса 1С он попадает в один узел и может использовать все 12 ядер, но нагрузка на двухпроцессорную систему не оптимальная, один процессор работает (и греется) больше другого.

Если запускать 2 процесса, то второй, "по ощущениям", тоже попадает в один узел с первым процессом, так как нагрузка не процессоры не перераспределяется. Может ли является ли такое поведение стандартным для лицензии проф, так как она не использует больше 12 ядер или рабочий процесс может запускаться на другом узле с освобождением соответствующего количества ядер на первом?
Найденные решения
3. TormDV 07.11.24 14:25 Сейчас в теме
Если разговор про Виндоус идет, то в диспетчере задач в подробностях можно у рпхоста посмотреть, на каких ядрах/потоках он выполняется (пункт Задать сходство), по умолчанию на первых. Затем вручную перераспределить на нужные. Экспериментировать на боевом сервере не буду ) Несколько лет назад поднимался здесь такой вопрос. Вроде как, нарушением лицензионного соглашения это не было на тот момент. Другое, что это неудобно, создастся новый процесс, и не факт, что так же будет распределен по ядрам. А вообще да, неплохо бы более оптимально распределить нагрузку.
user1274184; starik-2005; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 07.11.24 13:53 Сейчас в теме
(1) Проф. лицензия позволяет использовать только первые 12 ядер у процессора или процессоров если ядер у процессора меньше 12.
10. user1274184 13.11.24 16:50 Сейчас в теме
(1) С помощью Process explorer провел наблюдения. Сейчас 1с запускает 4 рабочих процесса, и 2 из них работают на всех ядрах 0 NUMA узла, 2 на всех ядра 1 NUMA узла. То есть, вроде как используется 24 ядра на проф лицензии. Другое дело, что 1с все соединения, потребляющие процессор держит на 1-м процессе, на оставшихся нагрузка небольшая. В итоге все равно 1 процессор перегружен.

На самом нагруженном рабочем процессе больше соединений (больше, чем задано в настройке рабочего сервера), больше время реакции сервера и все равно 1с новые процессы садит на него. Почему она так делает - не понимаю.
3. TormDV 07.11.24 14:25 Сейчас в теме
Если разговор про Виндоус идет, то в диспетчере задач в подробностях можно у рпхоста посмотреть, на каких ядрах/потоках он выполняется (пункт Задать сходство), по умолчанию на первых. Затем вручную перераспределить на нужные. Экспериментировать на боевом сервере не буду ) Несколько лет назад поднимался здесь такой вопрос. Вроде как, нарушением лицензионного соглашения это не было на тот момент. Другое, что это неудобно, создастся новый процесс, и не факт, что так же будет распределен по ядрам. А вообще да, неплохо бы более оптимально распределить нагрузку.
user1274184; starik-2005; +2 Ответить
5. user1274184 08.11.24 09:21 Сейчас в теме
(3) Спасибо! К сожалению, в диспетчере задач нельзя увидеть, на каких процессорах/ядрах выполняется процесс, только задать. Мы выбрали путь увеличения количества рабочих процессов, чтобы они гарантированно попадали в разные ноды, путем задания параметра количество соединений на процесс в свойствах рабочего сервера 1С. Но этот параметр работает как-то странно: при значении 32 и 140 соединений создается 3 рабочих процесса с 76, 51 и 10 процессами (примерно:). При этом в диспетчере задач примерно по 90 потоков на каждом процессе. В общем, работает как-то не так, как описывается в тех. документации:)

Может кто-нибудь предположить, почему?
6. paulwist 08.11.24 10:00 Сейчас в теме
(5)
в диспетчере задач нельзя увидеть, на каких процессорах/ядрах выполняется процесс


Качаете Process Explorer с сайта MS от Марка Русиновича, наслаждаетесь :)
7. user1274184 08.11.24 11:47 Сейчас в теме
(6)
нельзя увидеть, на каких про

Тоже не увидел...
8. paulwist 08.11.24 12:44 Сейчас в теме
(7)
Тоже не увидел..


А хелп прочитать :)
Прикрепленные файлы:
user1274184; +1 Ответить
9. user1274184 08.11.24 14:04 Сейчас в теме
(8)
Спасибо, теперь увидел!)
4. starik-2005 3091 07.11.24 14:35 Сейчас в теме
(1)
CPU Affinity
В Windows NT и следующих версиях, привязка нитей и процессов можно устанавливаться отдельно с помощью вызовов API SetThreadAffinityMask[13] и SetProcessAffinityMask[14] или через интерфейс диспетчера задач (только для процессов).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот