VPN шлюзіңіз CPU-мен шектелген бе? Алдымен әр ядроның жүктемесін оқыңыз
Орташа мәндер маңызды ағынды жасырады. Бақыланатын беріліс кезінде әр ядроның жүктемесін оқыңыз, жолды алып тастаңыз, содан кейін әр жүгірісте бір құжатталған параметрді өзгертіңіз.
Үлкенірек дана сатып алмас бұрын үш шектен қайсысына жеткеніңізді анықтаңыз. Бір ядро толық жүктеліп, қалғандары бос тұрса, бұл ағын сайынғы крипто жұмысын көрсетеді. Беріліс кезінде барлық ядро қаныққан болса, бұл жалпы қуатты көрсетеді. Төмен CPU және өсіп келе жатқан қайта жіберу саны жолды көрсетеді. Әрқайсысының бірінші қадамы бөлек, және олардың тек біреуі үлкенірек данамен шешіледі.
Үш шек, бір кесте, үш түзету
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, loss, host contention |
Жолдарды кезең ретінде емес, диагностика ретінде оқыңыз. Бір ағын 100%-да, ал қалғандары бос болса, бұл бір үлкен туннель тасымалдайтын шлюзде ең көп кездесетін нәтиже, өйткені сол ағынның шифрлауы бір ядрода жүреді. Беріліс кезінде барлық ядро бос емес болса, машина қолынан келгенінше жұмыс істеп жатыр. Төмен CPU және өсіп келе жатқан қайта жіберулер процессордың деректерді үнемі түсіретін желіні күтіп тұрғанын білдіреді.
Оларды дәлелдер тәртібімен түзетіңіз. Ағындарды жұмысшыларға тарату бірінші жағдайға көмектеседі және екіншісіне ештеңе істемейді. Үлкенірек дана екіншісіне көмектеседі және біріншісінде ақшаны ысырап етеді. MTU немесе жоғалтуды түзету ғана үшіншісіне тиеді. Қай жолда тұрғаныңызды білмей тұрып қуат сатып алу болжаудың қымбат нұсқасы.
Бекітілген ағынды бос емес хосттан ажыратыңыз
Әр ядроның пайдаланылуынан бастаңыз, сонда бекітілген бір ядро орташа мәннің ішінде жасырына алмайды. Беріліс кезіндегі бір жүгіріс жүктеменің тегіс пе әлде шыңды екенін көрсетеді. Екі пішін де ақпаратты, ал шыңды профиль көбіне іріктеу терезесі шифрлаудың орнына жоспарлаушының белсенділігін ұстағанын білдіреді.
mpstat -P ALL 1 5
Бос емес ядроны процеске, содан кейін ағынға теліңіз. Төмендегі қадағалау жүгірісі ата-ана мен бала ағындарын бірге ұстайды, бұл демон әр қосылым үшін тармақталғанда маңызды:
pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10
Ядро криптографиясы пайдаланушы кеңістігіндегі процесс санағышында ешқашан көрінбейді. Ағындарды жеке іріктеп, сол көріністі процестің есебімен салыстырыңыз:
top -H -b -n 1 | head -20
Сокет санағыштарын соңында оқыңыз, өйткені олар қосымша CPU-ның жалпы көмектесетінін шешеді. CPU тегіс кезде қайта жіберулердің өсуі процессор мәселесі емес. Іріктеу кезінде берілісті жалғастырып ұстаңыз, әйтпесе сандар бос машинаны сипаттайды:
ss -ti | grep -E 'retrans|cwnd|rtt'
Бақыланатын беріліс, екі рет орындалды
Бос санағыштар ештеңені дәлелдемейді, ал кездейсоқ соңғы нүктеге қарсы эталон өте аз дәлелдейді. Бір клиентті, бір межені және орындауға рұқсат етілген бір өкілдік берілісті таңдаңыз, содан кейін сол терезеде өткізу қабілеті мен интерактивті кідірісті жазып алыңыз. Шлюз қанығуы мүмкін, ал жаппай көшіру әлі аяқталып жатқанда, және кідіріс қисығы пайдаланушылар шынымен сезінетін нәрсе. Берілісті, клиент санын және демон нұсқасын сандардың қасына жазыңыз.
Жүгірісті бірнеше параллель ағынмен қайталаңыз. Ағындар бойынша өсу ағын сайынғы терезелерді көрсетеді; бір ядро бекітілген күйде тегіс қалу өңдеуді көрсетеді.
Содан кейін қосымша жұмыс жүктемелерін тоқтатып, тағы бір рет қайталаңыз. Сол хосттағы сақтық көшірме, журнал жіберуші немесе дерекқор туннельдерге қатысы жоқ бос емес орташа мән жасауы мүмкін. Егер хост өзгеше тыныш болса да CPU бекітілген күйде қалса, дәлелдер VPN процесін көрсетеді. Егер ол төмендесе, сіз көршіні өлшеп жатқансыз, ал шлюз ешқашан мәселе болған емес.
Аппарат сатып алмас бұрын жолды алып тастаңыз
Өсіп келе жатқан қайта жіберулер, тарылатын кептеліс терезесі және өсіп келе жатқан барып-қайту уақыты процессордан алысқа көрсетеді. Туннель MTU-ін жол MTU-імен салыстырыңыз, негізгі байланысты жоғалтуға тексеріңіз және клиенттің өз жоғары арнасы шек еместігіне көз жеткізіңіз. Үлкенірек шлюз пакеттерді түсіретін байланысты жөндемейді, ал пайдаланушылар екі ақауды да бір сөздермен сипаттайды. Қайта жіберу санағышы оларды минуттар ішінде ажыратады.
Виртуалды серверде провайдердің өлшемдерін қонақтың өз өлшемдеріне қосыңыз. Ұрланған уақыт — артық сатудың қонақтың ішінде қалай көрінетіні, және қонақтың ішіндегі ешбір реттеу оны жоймайды. Қонақ санағыштары хостты көре алмайды, сондықтан таза қонақ графигі сау хосттың дәлелі емес.
Бір өзгеріс, бір өлшеу
Дәлелдер қолдайтын гипотезаны таңдаңыз, содан кейін дәл бір қолдау көрсетілген параметрді өзгертіңіз: жұмысшылар саны, құжатталған жүктемені түсіру опциясы немесе дана өлшемі. OpenVPN өңдеу мен тасымалдау арасындағы дәл осы бөлініс туралы өнімділік ақауларын жою нұсқаулығын жариялайды: OpenVPN өнімділік ақауларын жою.
Жүктемені түсіру опциясының шынымен белсенді екеніне көз жеткізіңіз, жалаушаға сенудің орнына, содан кейін дәл сол берілісті қайта іске қосып, ұқсасты ұқсаспен салыстырыңыз. Нақты жақсартуды тыныш түстен ажыратудың жалғыз жолы осы. Қалпына келтіруге болатын бақылау нүктесін сақтаңыз, өйткені екінші өзгерісте адамдар қайсысы көмектескенін ұмытып қалады. Жүгіріс сайынғы бір айнымалы бір күнге баяу, бір айға жылдам.
График жақсырақ көрінуі үшін аутентификацияны немесе шифрлер жиынтығын әлсіретпеңіз. Егер CPU әлі де симптомға ілеспесе, болжаммен жаңартудың орнына жол мен қолданба тексерулеріне оралыңыз.