Hyper-V چیست؟
Hyper-V دارای یک معماری مبتنی بر Hypervisor نوع یک (Type 1) میباشد. Hypervisor پردازندهها و حافظه را مجازیسازی کرده و مکانیزمهایی را برای Stack مجازیسازی در بخش Root فراهم مینماید تا بخشهای زیرمجموعه (Child Partitions) یا همان ماشینهای مجازی مدیریت شده و خدماتی مانند دستگاههای I/O در دسترس ماشینهای مجازی قرار بگیرند.
بخش Root دستگاهها دارای دسترسی مستقیم به I/O فیزیکی میباشد. این Stack مجازیسازی در پارتیشن Root زمینهی مدیریت حافظه ماشینهای مجازی مدیریت APIها و ورودی و خروجی دستگاهها را فراهم میآورد. همچنین دستگاههای شبیهسازیشدهای مانند کنترلر دیسک Integrated Device Electronics یا به اختصار IDE و پورت دستگاه ورودی PS/2 را به کار میگیرد و از دستگاههای مصنوعی (Synthetic) مختص به Hyper-V برای بهبود عملکرد و کاهش Overhead پشتیبانی مینماید.
معماری I/O مختص به Hyper-V شامل ارائهکنندگان سرویس مجازیسازی یا به اختصار VPSها در بخش Root و Clientهای سرویس مجازیسازی یا به اختصار VSCها در زیرمجموعهها میباشد. هر سرویس به عنوان یک دستگاه روی VMBus قابل مشاهده است، که نقش یک I/O Bus را ایفا کرده و ارتباطی با عملکردی بالا را بین ماشینهای مجازی که از مکانیزمهایی مانند حافظهی اشتراکی استفاده مینمایند، ممکن میسازد. مدیریت Plug and Play متعلق به سیستم عامل Guest، این دستگاهها را که شامل VMBus هستند، حساب میکند و درایورهای مناسب دستگاه (Clientهای سرویس مجازی) را بارگذاری مینماید. خدماتی به غیر از I/O نیز از طریق این معماری قابل مشاهده میباشند.
اولین مورد از این خدمات Windows Server 2008 میباشد؛ این سیستم عامل دارای ویژگیهایی است که رفتارش را در حین اجرا شدن در ماشینهای مجازی بهینهسازی میکنند. مزایای این سرویس شامل مواردی مثل کاهش هزینهی مجازیسازی، بهبود مقیاسپذیری Multicore و کاهش استفادهی CPU در پسزمینهی سیستم عامل Guest میباشد. در ادامه، بهترین راهکارهایی که عملکرد بهتری را روی سرورهایی دارند که نقشHyper-V را اجرا میکنند، معرفی میگردند.
جهت مشاوره رایگان و یا راه اندازی زیرساخت مجازی سازی دیتاسنتر با کارشناسان شرکت APK تماس بگیرید. |
عملکرد پردازنده Hyper-V
خدمات یکپارچهسازی ماشین مجازی
خدمات یکپارچهسازی ماشین مجازی شامل درایورهای بهبودیافتهای (Enlightened) برای دستگاههای I/O مختص به Hyper-V است که به طور قابلتوجهی CPU Overhead متعلق به I/O را در قیاس با دستگاههای شبیهسازیشده کاهش میدهند. باید آخرین نسخه از خدمات یکپارچهسازی ماشین مجازی در هر ماشین مجازی تحت پشتیبانی نصب گردد. این خدمات استفادهی ماشینهای مجازی شدهی کم مصرف و پرمصرف از CPU را کاهش میدهد و توان عملیاتی I/O را بهبود میبخشد. این اولین قدم در تنظیم عملکرد در سروری است که Hyper-V را اجرا مینماید.
پردازندههای مجازی
Hyper-V در ویندوز سرور 2016 از حداکثر 240 پردازندهی مجازی به ازای هر ماشین مجازی پشتیبانی میکرد. ماشینهای مجازی که دارای بارهایی هستند که روی CPU متمرکز نمیباشند، باید به صورتی پیکربندی گردند تا از یک پردازندهی مجازی استفاده نمایند. دلیل این امر، Overhead اضافی است که به چندین پردازندهی مجازی، مرتبط میباشد؛ از جمله هزینههای هماهنگسازی اضافهای که در سیستم عامل میزبانیشده مصرف میگردد. در صورتی که زیر اوجِ بار، ماشین مجازی نیازمند بیش از یک CPU از پردازش بود، باید تعداد پردازندههای مجازی را افزایش داد.
فعالیت در پسزمینه
به حداقل رساندن فعالیت پسزمینهای در ماشینهای مجازی غیرفعال (Idle) چرخههای CPUی را آزاد میکند که در جای دیگر توسط ماشینهای مجازی دیگر مورد استفاده قرار میگیرند. Guestهای ویندوز، زمانی که غیرفعال هستند معمولا از کمتر از یک درصد از CPU استفاده مینمایند. در ادامه چند مورد از بهترین راهکارها برای به حداقل رساندن استفادهی پسزمینهای CPU در یک ماشین مجازی مطرح میگردد:
- نصب آخرین نسخه از خدمات یکپارچهسازی ماشین مجازی.
- حذف آداپتور شبکهی شبیهسازیشده از طریق Dialog Box تنظیمات ماشین مجازی، با استفاده از آداپتور مختص به Hyper-V مایکروسافت.
- حذف دستگاههایی که مورد استفاده قرار نمیگیرند، مانند CD-ROM و پورت COM یا قطع اتصال رسانهی آنها.
- نگه داشتن سیستم عامل Guest ویندوز روی صفحهی Sign-In وقتی مورد استفاده قرار نمیگیرد و همچنین غیرفعال کردن Screen Saver.
- بررسی Taskها و خدمات برنامهریزیشده که به صورت پیشفرض فعال هستند.
- بررسی ارائهکنندگان ETW Trace که به طور پیشفرض با اجرای exe query -ets فعال هستند.
- بهبود برنامههای کاربردی سرور، مانند تایمرها، جهت کاهش فعالیت دورهای.
- بستن Server Manager هم روی سیستم عامل Host و هم Guest.
- توقف اجرای مدیربرنامه Hyper-V، از آنجایی که دائما Thumbnail ماشین مجازی را Refresh مینماید.
برای پیکرندی یک نسخهی Client از ویندوز در ماشین مجازی جهت کاهش استفادهی کلی از CPU نیز، راهکارهایی وجود دارند؛ از جمله:
- غیرفعال کردن خدمات پیشزمینهای مانند SuperFetch و Windows Search.
- غیرفعال کردن Taskهای برنامهریزیشده مانند Scheduled Defrag.