پیکربندی مجازیسازی: چند VM روی یک سرور واقعی جواب میدهد؟
اگر تا حالا مجازیسازی کردهاید، احتمالاً با این موقعیت روبهرو شدهاید: روی یک سرور بیست ماشین مجازی دارید و ناگهان یکی از آنها کند میشود.
دو مدرسه تفکر
مدرسه اول میگوید هرچه بیشتر، بهتر. مدرسه دوم میگوید هرچه کمتر، امنتر. هر دو تا حدی درستاند، اما معیار درست، نیاز واقعی بار کاری شماست.
محاسبه پایه RAM
قاعده ساده این است: حداکثر ۷۰ درصد RAM فیزیکی را به ماشینهای مجازی بدهید. ۳۰ درصد باقیمانده برای سیستمعامل میزبان، فایل کش و جذب نوسانات است.
مثال: سرور ۱۲۸ گیگابایتی ۹۰ گیگابایت برای VM اگر هر VM به ۴ گیگابایت نیاز دارد، حداکثر ۲۲ ماشین
Overcommit در حافظه چقدر باشد؟
در ماشینهای مجازی، overcommit حافظه مجاز است. یعنی میتوانید به ماشینها بیش از RAM واقعی اختصاص دهید، چون همه آنها همزمان به حافظه فیزیکی نیاز ندارند.
اما این کار خطر دارد:
- اگر بار همزمان بالا برود، سیستمعامل میزبان مجبور به جابهجایی مداوم حافظه میشود
- تأخیر ناگهانی و شدید ایجاد میشود
- در بدترین حالت OOM Killer وارد عمل میشود
نسبت ۱ به ۱٫۵ برای بارهای سبک قابل قبول است. برای بارهای سنگین، هرگز بیش از ۱ به ۱ نروید.
vCPU را دست کم نگیرید
اشتباه رایج دیگر، تخصیص بیش از حد vCPU است. اگر ۳۲ رشته فیزیکی دارید و ۴ ماشین با ۱۶ vCPU بسازید، هر ماشی فقط به یک هسته فیزیکی دسترسی دارد.
قاعده: مجموع vCPUها نباید از تعداد رشتههای فیزیکی بیشتر شود، مگر در بارهایی که واقعاً بیکار هستند.
حاشیه اطمینان
این جدول را نگاه کنید:
| سناریو | بهرهوری امن RAM |
|---|---|
| بار سبک و توسعه | ۸۰٪ |
| بار متوسط ترکیبی | ۷۰٪ |
| بار سنگین پایدار | ۵۰٪ |
| بار بسیار سنگین | ۳۵٪ |
چگونه از اشتباه جلوگیری کنیم
قبل از اینکه ماشی جدید اضافه کنید، مصرف واقعی منابع هر ماشین را بررسی کنید:
- مصرف RAM در بیشترین حالت
- مصرف CPU در ساعات اوج
- الگوی استفاده از دیسک
اگر همه ماشینها در ساعات کاری به ۸۰ درصد ظرفیت برسند، عملاً جایی برای رشد نمانده است.