0.4 жүктемеде тұрған қақпа өзінің артындағы әрбір пайдаланушы үшін әлі де жорғалауы мүмкін. Орташа жүктеме орындалуға болатын немесе үзілмейтін ұйқыда қалған тапсырмаларды санайды, ал төрт ядролы хостта бір ғана қаныққан процесс оны 1.0-ге қарай итеруге жетеді, ал үш ядро бос отырады. Бұл санды қор ретінде оқу — соңғы нүктені таңдаудағы ең көп кездесетін қате. Туннельді шын мәнінде шектейтін нәрсе әдетте төрт нәрсенің бірі: бір бос емес ядро, жоғары арна, оның алдындағы кезек немесе ешкім құжаттамаған сессиялық саясат.

Орташа жүктеме тапсырмаларды санайды, өткізу қабілетін емес

Ядро орындалу кезегін және кіріс-шығысты күтіп тұрған тапсырмалар санын үлгілейді, содан кейін екеуін де бір, бес және он бес минут ішінде тегістейді. Бұл анықтамада байт, пакет немесе туннель туралы ештеңе айтылмаған. Қоймасы қатып қалған хост трафиксіз дерлік жоғары жүктеме хабарлауы мүмкін, ал ядроның деректер жолымен гигабитті итеретін хост жайлы жүктеме хабарлауы мүмкін.

Сондықтан жүктемені туннель өнімділігімен байланыстыру әр ядро бойынша көріністі қажет етеді. Бір ядро толық болса, тақтадағы жалпы пайыз әлі де жақсы көрінеді:

cat /proc/loadavg
mpstat -P ALL 1 1
top -H -b -n 1 | head -n 20

Үшінші команда — VPN хосттарында ең маңыздысы. OpenVPN 2.x-те пайдаланушы кеңістігіндегі пакеттерді өңдеу негізінен әр процесс бойынша реттелген, сондықтан бір бос емес ағын төбеге айналуы мүмкін, ал тақта мол бос қуат хабарлайды. Егер баяу кезеңде бір ағын ядроның көп бөлігін ұстап тұрса, хост тұтастай алғанда жеткіліксіз жабдықталмаған; ол кездейсоқ маңызды болып қалған өлшемде шектелген.

Уақытқа да назар аударыңыз. Он бес минуттық орташалар қоңырауды бүлдірген жарылысты жасырады, сондықтан шағымнан кейін түсірілген скриншот әлсіз дәлел. Мәселе кезінде үлгі алыңыз және уақыт белгісін шығыспен бірге сақтаңыз.

Жоғары арна және оның алдындағы кезек

Интерфейс санағыштары CPU сандары жауап бере алмайтын өткізу қабілеті сұрағына жауап береді. Олар сондай-ақ қуатты жоғалтудан ажыратады, ал бұлар әртүрлі шешімдері бар әртүрлі ақаулар:

ip -s link show dev eth0
tc -s qdisc show dev eth0
nstat -az TcpRetransSegs TcpExtTCPLostRetransmit

Сынақ кезінде өзіне бөлінген жылдамдыққа жақын тұрған байланыс — нақ сол түсіндірме, және бос CPU-дың ешбір мөлшері оны өзгертпейді. qdisc жолы интерактивті трафик үшін маңызды деталь қосады: жинақталу мен жоғалтулар пакеттердің шығар алдында кезекте күтіп тұрғанын айтады. Үлкен жүктеу кезінде толатын кезек адамдар қашықтағы серверге тағатын симптомды дәл шығарады, яғни бенчмаркте әлі жақсы көрінетін байланыстағы баяу қоңыраулар.

Қайта жіберу санағыштары пакеттер шығып кететін, бірақ ешқашан таза жетпейтін жағдайды ұстайды. Егер баяу терезеде қайта жіберулер өсіп, интерфейс қуаттан алыс болса, мәселе хостта емес, жолда, және сол қаладағы басқа соңғы нүктеге көшу көмектеспейді.

Сессия саны сұранысты сипаттайды, қорды емес

Әрбір ашық каталог қосылған пайдаланушылардың қандай да бір санын көрсетеді, және олардың ешқайсысы дерлік бұл пайдаланушылардың не істеп жатқанын айтпайды. Интерактивті жұмыс істеп жатқан жиырма сессия мен үлкен файлдарды тартып жатқан төрт сессия бірдей жабдықта мүлде басқа жүктемелер туғызады. Екінші үлгі пайдаланушы санында көрінбейді, және дәл сол кешті бүлдіреді. Сондықтан сессия санын сұраныс туралы ишара ретінде оқыған дұрыс, ешқашан бос қуат туралы мәлімдеме ретінде емес.

Number on the pageWhat it is really measuringWhat it cannot tell you
Connected usersHow many sessions hold an addressHow much each one is transferring
Load or scoreWhatever the operator chose to publishWhether that definition matches your task
UptimeHow long since the process startedCurrent capacity, queue depth or packet loss
Distance or pingRound-trip time on a small probeThroughput under sustained transfer

Өзіңіз басқаратын хостта күй файлы жетпейтін өлшемді береді. OpenVPN әр клиент бойынша байт санағыштарын қамтитын мерзімді сурет жазады, және бұл бір сессияның бүкіл жоғары арнаға жауапты екенін көруге жетеді:

status /run/openvpn/server.status 10
# then, after at least one interval
grep -E "^CLIENT_LIST" /run/openvpn/server.status

Он секунд аралықпен алынған екі үлгі бұл жинақталған санағыштарды әр клиентке шаққандағы жылдамдыққа айналдырады. Бұл — пайдаланушы саны алмастырып жүрген өлшем, және осылайша қате конфигурацияланған бір клиенттің әр түнде бір уақытта байланысты қанықтыратынын анықтайсыз.

Сессиялық шектеулер саясаттың ішінде жасырын

Сервер бос тұрып, соған қарамастан сізге өткізу қабілетін беруден бас тартуы мүмкін. Жылдамдық шектеулері, әр клиентке шаққандағы өткізу қабілетінің төбесі және трафикті қалыптау көбіне ортақ атау немесе пул бойынша қолданылады, сондықтан бір қақпадағы екі пайдаланушы мүлде басқа нәтиже алуы мүмкін. Механизм нәзік емес, бірақ сырттан көрінбейді, өйткені туннель екі жағдайда да қалыпты түрде көтеріледі.

Қалыптауды туннель интерфейсінен іздеңіз, физикалықтан емес. Шектеу пайдаланушыға, сертификатқа әлде мекенжай пулына тәуелді ме, соны тексеріңіз. Егер сынақ тіркелгіңіз шектеусіз пулға түссе, сервер дұрыс, ал шағымданушы пайдаланушы қате деген қорытындыға келесіз. Мұндай қорытынды қорытындының жоқтығынан да жаман, өйткені ол билетті жабады.

Екі соңғы нүктені бір тұрақты тапсырмамен салыстырыңыз

Клиент жағындағы эксперимент әлі де жасауға тұрарлық, бірақ айнымалылар бекітілген жағдайда ғана. Сол құрылғыны, сол кіру желісін, сол протоколды және сол мақсатты файлды пайдаланыңыз, содан кейін ұқсас қашықтықтағы екінші соңғы нүктеге қарсы қайталаңыз. Жүгірістер арасында өзгеретіннің бәрі, соның ішінде тәулік уақыты, нәтижені ластайды.

Сәтсіздіктерді табыстар сияқты мұқият жазып алыңыз. Үш соңғы нүкте жұмыс істеп, біреуі уақыт шегіне жететін серия төрт жылдамдық санынан гөрі ақпараттырақ, өйткені ол қуат емес, жол немесе саясат мәселесін көрсетеді. Әр жағдайды кемінде екі рет іске қосыңыз; ортақ желіде бір баяу үлгі ештеңені дәлелдемейді.

Соңында, жинаған сандарыңызды олар қолдайтын тұжырыммен бірге сақтаңыз. "Бұл соңғы нүкте тасымалды екіншісі тұрып қалған сол терезеде орындады" — қорғауға келетін тұжырым, ал "бұл соңғы нүкте жылдамырақ" басты беттегі ұпаймен жеңе алмайтын дауға шақырады. OpenVPN 2.6 нұсқаулығы күй файлы мен қалыптау опцияларын құжаттайды, егер хост жағының нақты директивалары керек болса.

Қатысты мақалалар