Малък 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 не е текущото ограничение. Той не казва нищо за мрежовия път и нищо за това какво става при двойна паралелност. Наблюдавайте мрежовите метрики в същия прозорец като метриките за кредити, така че спадът в пропускателната способност да има вероятна причина, а не теория.

Избор на базова линия нарочно

Използвайте измереното устойчиво натоварване, за да изберете базова линия, или приемете тласъка изрично и предвидете бюджет за него. Всеки отговор е защитим, когато е записан; нито един не е защитим, когато е изведен от успешен видео поток на някой друг.

Ако шлюзът е носещ натоварването, третирайте режима на кредити като част от плана за капацитет, а не като настройка по подразбиране, която никога не сте отваряли. Режимът, който изберете, е отказът, който можете да предвидите.

Подобни статии