Распределение ресурсов с помощью vSphere Hypervisor

418
louis

Я строю домашний сервер на старом ПК (Core 2 Duo E6600 в качестве процессора, 4 ГБ ОЗУ, два жестких диска, по одному на каждую ВМ), и у меня возникают проблемы с одной из моих ВМ. В настоящее время у меня есть две виртуальные машины, одна из которых работает под управлением ОС Untangle, а другая - под управлением Windows Server 2008 R2. Виртуальная машина Untangle работает отлично, но Server 2008 работает очень медленно, на нем практически ничего не установлено, кроме ОС (я думаю, что я установил только антивирус, который сканирует только по требованию).

Несмотря на то, что компьютер старый, я вполне уверен, что он должен хорошо работать на Server 2008, хотя вы можете исправить меня, если я ошибаюсь. Я прочитал о процессоре и обнаружил, что на самом деле он имеет 2 физических процессора и 2 логических в каждом физическом (не уверен, в чем именно разница). Тем не менее, я подумал, что на самом деле у меня было четыре процессора для выделения моим виртуальным машинам. Затем я назначил 1 процессор и 1 ГБ оперативной памяти для Untangle VM, а также три процессора и 3 ГБ оперативной памяти для Server 2008. Windows Server практически не работал. Затем я узнал от коллеги, что процесс может фактически зависнуть при назначении двум разным физическим процессорам, поскольку у данных могут возникнуть проблемы с пересечением пути через каждый физический сокет (не уверен, что это правильно). Он предложил мне поставить только 2 процессора на эту виртуальную машину, так что все данные будут обрабатываться на одном физическом процессоре. Казалось, это решило проблему немного, но я все еще испытываю некоторый фрагмент времени, когда виртуальная машина работает очень медленно. Это приходит волнами. Я могу запустить проверку на вирусы, и она идет очень быстро в течение первых 30 минут, но затем сильно замедляется, а когда она заканчивается, я едва могу даже открыть проводник Windows.

Я также зарезервировал 4800 МГц для виртуальной машины с сервером 2008 (не уверен, что это на самом деле означает два полных процессора, так как они работают на частоте 2,4 ГГц каждый), но я не слишком знаком с этим понятием резервирования ресурсов.

Мне интересно, правильно ли распределены ресурсы виртуальных машин (что, как мне кажется, нет, но это только ощущение), или это просто старый компьютер, и у него будут проблемы с запуском Windows Server 2008.

Пожалуйста, прости меня, если я использую неправильные термины или смешиваю понятия, так как я новичок в этом мире виртуализации.

Спасибо за помощь,

Луис

2
Скорее всего, медлительность исходит от вашего доступа к диску. Один диск не всегда может поддерживать несколько ОС. IIRC, Untangle может использовать довольно много дискового времени, особенно если у вас включен модуль сетевого кэширования. Попробуйте использовать клиент vSphere для мониторинга использования ресурсов гипервизора. вʀaᴎᴅᴏƞ вєнᴎєƞ 9 лет назад 0
Я этого не говорил, но на самом деле я использую два жестких диска, один для Untangle и один для Server 2008. louis 9 лет назад 0
Я полагаю, у вас VT-x включен в BIOS? вʀaᴎᴅᴏƞ вєнᴎєƞ 9 лет назад 0
Да, я также сделал это, когда я впервые установил ESX5.5 louis 9 лет назад 0
попробуйте сохранить резервирование вашего процессора до 3000 МГц вʀaᴎᴅᴏƞ вєнᴎєƞ 9 лет назад 0
Не могли бы вы рассказать мне, как это могло бы помочь, не то, чтобы я сомневался, но я также хочу узнать, как работает vSphere :). louis 9 лет назад 0

1 ответ на вопрос

0
вʀaᴎᴅᴏƞ вєнᴎєƞ

Little too long for a comment, So I'm adding it as an answer.

Your CPU is a dual core CPU with a clock rate of 2.4GHz or 2400MHz per core. [1] That equates to 4800Mhz of total processing at any given time. Normally speaking, the operating system handles the management of a computer's resources. VMWare ESXi is a bare-metal operating system, aka a hypervisor. Basically that means there isn't a whole lot to it, which is why you can install ESXi to a 1GB SD card if you really wanted. [2]

When it comes to managing the CPU resources, there is something called a scheduler that governs how and when processes run on the CPU. ESXi has a scheduler built into it's kernel. [4] All is fine and well so long as there is enough processing available for the scheduler to give all of the processes running the CPU time that they need. A computer can begin to run slowly and be unresponsive if there is more work that needs to be done than it can readily process. When this occurs within ESXi, the kernel then begins to time-slice the physical CPU cores so that all the virtual machines get a chance to run what instructions they need to. [3]

Since we all know that computers work by magic, everything should just work, right?

Well lets look at it this way: You have two VMs currently and you have a 4800MHz of CPU power for all them to share. Oops, almost forgot about ESXi... So that means you have a total of three things running on the workstation. All three of those things are trying to use a portion of the total 4800MHz that's available. Good news is that under most circumstances there should be enough to go around because most operating systems do not utilize 100% of the CPU at all times.

Now for the bad news: You've told ESXi to give all 4800MHz of CPU time to the Windows guest VM regardless of it's availability. Effectively, that doesn't leave anything else for the other two to use. ESXi will then time-slice the physical CPUs so that the other things can run as well. This time-slicing doesn't really affect Untangle or ESXi because they are running just way they need to when they need to run. It does affect the Windows VM because when it's trying to do something, it's getting stopped part way through for numerous short intervals by the ESXi scheduler. A little interruption here or there isn't noticeable, but it's happening over and over again many many times a second, which may explain why the Windows VM is so sluggish at times.

Your coworker wasn't quite right on his diagnosis of your machine because it only has one socket and one CPU, although his recommended resolution was a step in the right direction. Taking the virtual CPU count down from 3 to 2 helped because you had "over-provisioned" your CPU resources. Basically your configuration in regards to CPU reservation is also called by the same name. To resolve this you need to move your reservation down to about 1000MHz and set a CPU limit of somewhere between 3000-3800MHz. Doing so may not solve all your slowness issues, but it should help.

Sources:

[1] http://ark.intel.com/products/27250/Intel-Core2-Duo-Processor-E6600-4M-Cache-2_40-GHz-1066-MHz-FSB [2] http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.vsphere.install.doc/GUID-DEB8086A-306B-4239-BF76-E354679202FC.html [3] http://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.vsphere.resmgmt.doc%2FGUID-DFFA3A31-9EDD-4FD6-B65C-86E18644373E.html [4] http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-CPU-Sched-Perf.pdf 
+ Объяснение честно. Большое спасибо, что нашли время написать этот ответ. Это наверняка помогло мне понять, как работают ESX и распределение ресурсов, и, несомненно, поможет мне решить проблему с моим сервером. Несмотря на то, что я еще не тестировал изменения, я отмечаю это как ответ, поскольку это уже помогло мне намного больше, чем я хотел. Еще раз спасибо! louis 9 лет назад 0
@louis Добро пожаловать, надеюсь, это поможет. вʀaᴎᴅᴏƞ вєнᴎєƞ 9 лет назад 0

Похожие вопросы