Лучший отвечающий
Распределение загрузки виртуальных процессоров на физические

Вопрос
-
Скорее не проблема а вопрос. Имеем сервер (HP ProLiant DL180 G6) с установленным Hyper-V Server. Всего физических ядер 8 (два четырехъядерных процессора).
Виртуальные машины:
- 1С8 - 4 вирт. проц.
- TR - 4 вирт. проц.
- SQL1 - 4 вирт. проц.
- SQL2 - 1 вирт. проц.
Проблема с сервером SQL2. На нем SQL с процессорной лицензией, и по этому ему можно выделить только 1 вирт. проц.
Периодически он перегружен по процессору:
При этом загрузка ядер физических процессоров незначительна:
Собственно вопрос: как распределяется загрузка виртуальных процессоров к физическим и почему физические не загружены при загрузке виртуальных?
11 июня 2012 г. 7:41
Ответы
-
Не очень понятно с чем вы собираетесь "бороться". Заставить однопроцессорный SQL Server занять 100% одного из ядер (по данным счетчика)? Попробуйте уменьшить количество виртуальных процессоров так, чтобы оно сравнялось с количеством логических. Вы можете попробовать выставить CPU Affinity: http://blogs.technet.com/b/tonyso/archive/2009/09/22/hyper-v-how-to-set-processor-affinity-in-hyper-v.aspx
NOTE: Для любых действий касаемо повышения производительности одного параметра (периодически он перегружен по процессору) не то чтобы недостаточно, это вообще ни о чем сказать не может. В это время SQL Server может занимать всю доступную серверу память, а если она динамическая, то может начаться большая работа с диском (файл подкачки) и обрабатывая все это CPU показывает временные пики. Это может быть временное повышение латентности дисовой подсистемы и процессор мучительно обрабатывает очереди... Я могу придумать еще вариантов... Если вы считаете, что ваш SQL Server не справляется - проблему нужно исследовать комплексно, по одним графикам CPU можно только погадать.
http://OpsMgr.ru/
- Помечено в качестве ответа Yuriy Lenchenkov 25 июня 2012 г. 12:55
19 июня 2012 г. 9:21Отвечающий
Все ответы
-
Measure guest operating system processor utilization здесь:http://msdn.microsoft.com/en-us/library/cc768535(v=bts.10).aspx
http://OpsMgr.ru/
11 июня 2012 г. 8:06Отвечающий -
Спасибо за ссылку. На сколько я понял, количество вирт.проц. определяет процент использования физических ядер. Тоесть, в моем случае, нужно у других ВМ уменьшить количество вирт.проц.?
13 июня 2012 г. 8:58 -
Вот график по счетчикам Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time и Hyper-V Hypervisor Virtual Processor(_Total)\% Total Run Time. Синим - график проблемного (с одним вирт.проц.) сервера:
Как видно по графику, при загрузке процессора ВМ загрузка физических процессоров растет, но незначительно.
13 июня 2012 г. 10:29 -
На сколько я понял, согласно документа Measuring Processor Performance, виртуальные процессоры могут полностью грузить физические.
Проблема остается. Для тестирования оставил на сервере Hyper-V только одну виртуальную машину. Нагрузил процессор ВМ:
Красный график показывает загрузку процессора виртуальной машины на 50%. При этом загрузка физических процессоров остается в районе 10%.
Почему так происходит и можно ли с этим бороться?
19 июня 2012 г. 8:44 -
Не очень понятно с чем вы собираетесь "бороться". Заставить однопроцессорный SQL Server занять 100% одного из ядер (по данным счетчика)? Попробуйте уменьшить количество виртуальных процессоров так, чтобы оно сравнялось с количеством логических. Вы можете попробовать выставить CPU Affinity: http://blogs.technet.com/b/tonyso/archive/2009/09/22/hyper-v-how-to-set-processor-affinity-in-hyper-v.aspx
NOTE: Для любых действий касаемо повышения производительности одного параметра (периодически он перегружен по процессору) не то чтобы недостаточно, это вообще ни о чем сказать не может. В это время SQL Server может занимать всю доступную серверу память, а если она динамическая, то может начаться большая работа с диском (файл подкачки) и обрабатывая все это CPU показывает временные пики. Это может быть временное повышение латентности дисовой подсистемы и процессор мучительно обрабатывает очереди... Я могу придумать еще вариантов... Если вы считаете, что ваш SQL Server не справляется - проблему нужно исследовать комплексно, по одним графикам CPU можно только погадать.
http://OpsMgr.ru/
- Помечено в качестве ответа Yuriy Lenchenkov 25 июня 2012 г. 12:55
19 июня 2012 г. 9:21Отвечающий