VPN EC2 از نوع Burstable: اعتبارهای CPU استاندارد یا نامحدود؟
یک حالت در خط پایه محدود میکند، دیگری ادامه میدهد و ممکن است صورتحساب صادر کند. پیش از آنکه یک نمونه کوچک به دروازه شما تبدیل شود، حساب اعتبارها را انجام دهید.
یک دروازه VPN کوچک در آزمون سرعت قبول میشود، خوب به نظر میرسد و بعدازظهر افت میکند. نمونه در طول آزمون دروغ نمیگفت؛ اعتبارهایی را خرج میکرد که در زمان بیکاری به دست آورده بود. نمونههای Burstable دقیقاً برای همین طراحی شدهاند و همین یک آزمون کوتاه را پیشبین بدی برای یک بعدازظهر پر از انتقال میکند. دو حالت اعتبار هم به شکلهای متفاوت شکست میخورند و انتخاب میان آنها تصمیم واقعی است.
آزمون سرعت از کجا قرض گرفته بود
یک اعتبار CPU یعنی یک vCPU که یک دقیقه با استفاده کامل کار میکند. نمونه Burstable اعتبارها را با نرخ خط پایه خود به دست میآورد و وقتی از آن خط فراتر میرود خرجشان میکند. یک شب بیکار موجودی میسازد؛ یک صبح شلوغ آن را مصرف میکند.
به همین دلیل آزمون اول خوب به نظر میرسد. نمونه بودجهای اندوخته داشت، آن را صرف کار رمزنگاری کرد و نرخی سالم گزارش داد. هیچ چیز در نتیجه نمیگوید وقتی موجودی به صفر برسد چه میشود. آزمون یک انفجار را اندازه گرفت و انفجار همان چیزی است که نمونه برای ارائه آن طراحی شده است. هرگز حالت پایداری را که قرار است به آن تکیه کنید اندازه نگرفت.
حسابی که باید انجام دهید
ورودیها درصد خط پایه به ازای هر vCPU، تعداد vCPU، موجودی انباشته و باری است که انتظار دارید. فقط برای نمونه: یک نمونه فرضی با دو vCPU، خط پایه ده درصد به ازای هر vCPU، 24 اعتبار انباشته و یک vCPU کاملاً مشغول در حالی که دیگری بیکار است را در نظر بگیرید. این اعداد ورودیهای اعلامشدهاند، نه مشخصات هیچ اندازه مشخصی از نمونه.
Earn rate: 2 x 10% x 60 = 12 credits/hour
Workload usage: 1 x 100% x 60 = 60 credits/hour
Net draw: 60 - 12 = 48 credits/hour
Accrued budget: 24 / 48 = 0.5 hoursبا این فرضها بودجه در حدود نیم ساعت تمام میشود. کار پسزمینه، بار متغیر و حسابداری خود نمونه نتیجه را جابهجا میکنند و هیچکدام از اینها توان عبوری VPN را پیشبینی نمیکند. آنچه پیشبینی میکند این است که محدودیت پایدار کِی شروع به فشار آوردن میکند.
به خوانش دوم هم توجه کنید: در این مثال یک vCPU مشغول تقریباً نیمی از ظرفیت کل CPU است. درصد کلی متعادل میتواند یک هسته اشباعشده را پنهان کند، پس رفتار به ازای هر هسته را در کنار اعداد اعتبار ببینید.
Standard و Unlimited: همان صفر، معنای متفاوت
در حالت Standard، موجودی تمامشده CPU پایدار را به سمت خط پایه محدود میکند. نمونه به کار ادامه میدهد، فقط کندتر، و سقف قابل پیشبینی است. در حالت Unlimited نمونه میتواند پس از رسیدن موجودی به صفر هم از اعتبارهای مازاد برداشت کند، و استفاده پایدار بالاتر از خط پایه ممکن است بر اساس قواعد حسابداری سرویس هزینه ایجاد کند.
پس CPUCreditBalance برابر با صفر در یک حالت یعنی محدودسازی و در حالت دیگر یعنی صورتحساب احتمالی. کل مقایسه همین است و به همین دلیل خواندن سنجه بدون خواندن حالت گمراهکننده است.
مازاد هم فاکتور ساده به ازای هر اعتبار نیست. کارکرد بعدی زیر خط پایه میتواند استفاده مازاد را کاهش دهد و شرایط هزینه دیگری هم اعمال میشود. حالت پیکربندیشده و قواعد فعلی سرویس را بررسی کنید، نه اینکه به ادعای رده رایگان از یک نوشته قدیمی وبلاگ تکیه کنید.
در کار واقعی چه چیزی را زیر نظر بگیرید
در کنار مدت و نرخ انتقال، CPUCreditUsage و CPUCreditBalance را ثبت کنید. در Unlimited، CPUSurplusCreditBalance و CPUSurplusCreditsCharged را اضافه کنید. راهنمای پایش اعتبار CPU از AWS توضیح میدهد هر یک چه چیزی را و هر چند وقت یکبار گزارش میکند.
با همزمانی نماینده و مدت کافی برای دیدن روند دوباره آزمون کنید و موجودی آغازین را ثبت کنید. یک صبح بیکار و یک بعدازظهر شلوغ آزمایش یکسانی نیستند، حتی با فرمانهای یکسان.
محدودیتهایی که CPU نیستند
پهنای باند شبکه خط پایه و رفتار انفجار خودش را دارد و محدودیتهای نرخ بسته یا تعداد اتصال میتوانند پیش از CPU عمل کنند. حافظه زمانی مهم است که پیادهسازی VPN برای هر اتصال وضعیت نگه میدارد و یک نمونه کوچک میتواند خیلی پیش از تمام شدن اعتبارها از حافظه تمام شود.
پس یک موجودی اعتبار سالم یک چیز را ثابت میکند: بودجه CPU محدودیت فعلی نیست. درباره مسیر شبکه چیزی نمیگوید و درباره آنچه در دو برابر همزمانی رخ میدهد هم چیزی نمیگوید. سنجههای شبکه را در همان پنجرهای که سنجههای اعتبار را میبینید زیر نظر بگیرید تا افت توان عبوری به جای یک نظریه، یک علت نامزد داشته باشد.
انتخاب آگاهانه خط پایه
از بار پایدار اندازهگیریشده برای انتخاب خط پایه استفاده کنید، یا انفجار را صریحاً بپذیرید و برایش بودجه بگذارید. هر دو پاسخ وقتی نوشته شوند قابل دفاعاند؛ هیچکدام وقتی از پخش ویدیوی موفق کسی دیگر استنتاج شوند قابل دفاع نیستند.
اگر دروازه حامل بار است، حالت اعتبار را بخشی از برنامه ظرفیت بدانید، نه یک پیشفرض که هرگز بازش نکردهاید. حالتی که انتخاب میکنید همان شکستی است که میتوانید پیشبینی کنید.