Я разрабатываю многопоточное приложение, интенсивно использующее процессор. До сих пор это приложение тестировалось на многоядерных (но с одним процессором) системах, таких как i7-6800K, и хорошо работало в Linux и Windows. Недавно обнаруженное явление заключается в том, что он не работает на определенном аппаратном оборудовании: 2 x Xeon E5 2660 v3:
Когда 40 потоков активны, загрузка процессора снижается до 5-10%. Этот сервер имеет два физических процессора и поддерживает NUMA. Приложение не было написано с учетом NUMA-модели, и поэтому у нас, безусловно, много обращений к нелокальной памяти, и это следует улучшить. Но вопрос таков: «Может ли низкая загрузка ЦП быть вызвана медленным доступом к памяти?»
Я полагаю, что это так, но коллеги заявили, что загрузка ЦП, тем не менее, останется на уровне 100%. Это важно, потому что если он прав, то проблема не в неправильной памяти. Я не знаю, как Windows10 учитывает загрузку процессора, поэтому я надеюсь, что кто-то знает из практического опыта работы с серверным оборудованием, если отображаемое использование процессора падает в случае перегруженных контроллеров памяти.