Burstable EC2 VPN: стандартни или неограничени кредити за 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. Ръководството на AWS за мониторинг на кредити за CPU обяснява какво отчита всяко от тях и колко често.
Тествайте отново с представителна паралелност и достатъчна продължителност, за да видите тенденцията, и запишете началния баланс. Бездейно утро и зает следобед не са същият експеримент, дори с идентични команди.
Ограничения, които не са CPU
Мрежовата честотна лента има собствена базова линия и поведение на тласък, а ограниченията за пакети в секунда или връзки могат да се задействат преди CPU. Паметта е важна, когато VPN реализацията пази състояние за всяка връзка, и малък инстанс може да я изчерпи много преди да свършат кредитите.
Здравият баланс на кредити следователно доказва едно: бюджетът за CPU не е текущото ограничение. Той не казва нищо за мрежовия път и нищо за това какво става при двойна паралелност. Наблюдавайте мрежовите метрики в същия прозорец като метриките за кредити, така че спадът в пропускателната способност да има вероятна причина, а не теория.
Избор на базова линия нарочно
Използвайте измереното устойчиво натоварване, за да изберете базова линия, или приемете тласъка изрично и предвидете бюджет за него. Всеки отговор е защитим, когато е записан; нито един не е защитим, когато е изведен от успешен видео поток на някой друг.
Ако шлюзът е носещ натоварването, третирайте режима на кредити като част от плана за капацитет, а не като настройка по подразбиране, която никога не сте отваряли. Режимът, който изберете, е отказът, който можете да предвидите.