OpenVPN-ferkearsstellers tsjin skiif-I/O: trije ferskillende getallen
Ynterface-bytes, de tekentellers fan it proses en skiifskriuwsels mjitte ferskillend wurk. Fergelykje se foardat jo skiven ôfstimsje op it tunnelvolume.
Stjoer in grut bestân troch in tunnel en de ynterface-teller stiget mei de grutte fan it bestân. Neat oan dat getal betsjut dat itselde folume in skiif berikt hat. Yn dizze diskusjes wurde trije ferskillende mjittingen fergelike, en se beantwurdzje trije ferskillende fragen: hoefolle ferkear in netwurklayer oerstiek, hoefolle bytes in proses troch systeemoproppen lies en skreau, en hoefolle wurk de opslachlayer berikte.
It earste mei it tredde fergelykje is de gewoane flater, en it smyt ôf in spoek-skiifprobleem of in kapasiteitsplan dat de skriuwsels negearret dy’t echt barre. De trije binne skiedber, en elk hat in korrekt gebrûk.
Trije getallen dy’t trochinoar helle wurde
Ynterface-tellers beskriuwe ferkear dat op in netwurklayer ôfhannele wurdt. Se binne it juste getal foar bânbreedte, foar de grutte fan in tunnel en foar fakturearringsmodellen dy’t transit priizje.
Tekentellers fan in proses beskriuwe bytes ferpleatst troch lês- en skriuwoproppen op hokker deskriptor dan ek, ynklusyf pipen, terminals en karakterapparaten. Se binne it juste getal om te freegjen hoe drok in proses op ’e grins fan de systeemoprop is, en se binne gjin opslachrekken.
Opslachtellers beskriuwe bytes dy’t de kearn besocht hat nei of fan in blokapparaat te ferpleatsen. Se binne it juste getal foar kapasiteitsplanning, mei de betingst dat de kearn syn eigen boekhâldingsgrinzen dokumintearret: cache-lêzingen wurde gjin opslachlêzingen, en in skriuwsel dat letter annulearre wurdt, wurdt gjin foltôge apparaatskriuwsel.
| Measurement | Question it answers |
|---|---|
| Interface bytes | How much traffic crossed this layer |
rchar and wchar | How much data the process moved through system calls |
read_bytes and write_bytes | How much work reached the storage layer |
Wêrom’t in bestânskripsje gjin skiifskriuwsel is
In VPN yn brûkersromte wikselet pakketten mei de kearn út troch in TUN-apparaat, dat in karakterapparaat is en gjin gewoan bestân. Lêzen derfan jout in pakket oer; skriuwen dernei ynjektearret ien. D’r is gjin side mei bestânssinhâld dy’t foar opslach klearmakke wurdt, en gjin bestânssysteempaad belutsen.
Dêrom kin in drokke tunnel enoarme tekentellers sjen litte hast sûnder opslachtellers. It proses hat dy bytes echt ferpleatst, en de kearn hie echt gjin skiif nedich om dat te dwaan.
cat /proc/$(pgrep -n openvpn)/io
ip -s link show tun0
Lês de earste útfier as kumulatief sûnt it starten fan it proses, net as in taryf. De twadde jout de ynterface-byld fan itselde ferkear. In grut gat tusken de beide is ferwachte en wiist net op in lek, in wachtrige of in ferkearde konfiguraasje.
Wêr’t de bytes echt wei komme
Oanhâldende útfier hat syn eigen budzjet, en it wurdt dreaun troch operaasjes yn stee fan troch de lading. In wiidfertochtich lognivo, in kliïntelist dy’t faak feroaret, of in flater dy’t him yn in strakke lus werhellet, kin grutte skriuwsels generearje wylst de tunnel hiel lyts ferfiert.
In statusbestân is in momintfoto dy’t mei in ynterval oerskreaun wurdt, dus syn kosten hingje ôf fan it ynterval en fan hoefolle records it befettet. It is gjin rinnende kopy fan it ferkear fan elke kliïnt, en it ynterval koarter meitsje feroaret it skriuwsfolume sûnder it ferkearsfolume te feroarjen.
Eigenskip is wichtich as jo dy skriuwsels sykje. As de tsjinst berjochten oerdraacht oan in logdaemon, dan wurdt it sjoernaal of it logbestân troch dy daemon skreaun, en de bytes ferskine yn ’e boekhâlding fan ’e daemon yn stee fan yn ’e eigen tellers fan it VPN-proses. Allinnich nei it VPN-proses sjen ferklearret noch de skiifaktiviteit noch it ûntbrekken dêrfan.
Oare bydragen binne maklik oer te sjen: lêzen fan sertifikaten en konfiguraasje by it starten, heakken dy’t har eigen records skriuwe, boekhâldingsplug-ins, crashtanks en net-relatearre workloads op deselde host. Gjin fan dy moat skatten wurde troch tunnelferkear gelyk te stellen oan skreaune bytes.
Elke teller korrekt lêze
Trije details beslisse oft in fergeliking wat betsjut. De identiteit fan it proses is wichtich, want in werstarte tsjinst set syn tellers werom. It tiidynterval is wichtich, want in kumulatief sifer en in grafyk per sekonde binne ferskillende mjittingen. En de ienheid is wichtich, want de hjoeddeistige grutte fan in logbestân is ek gjin taryf.
grep -E 'rchar|wchar|read_bytes|write_bytes' /proc/$(pgrep -n openvpn)/io
du -sh /var/log/openvpn 2>/dev/null
journalctl --disk-usage
As jo echte lading-skriuwsels fermoedzje, sykje dan in komponint waans taak it is om lading op te slaan: in ark foar pakketopname, in proxy dy’t lichems cachet, in plug-in dy’t argivearret. Dy produsearje opslachferkear dat skaalet mei wat der fan har frege wurdt om te registrearjen, en se hearre by in apart beliedsbeslút oer bewarjen en tagong.
Kapasiteit ôfstimsje mei it juste getal
Stim it pakketpaad ôf mei netwurkgetallen: trochstrings, kryptografyske ferwurking en ûnthâldsbeweging. Stim opslach ôf mei de observabiliteitskarren dy’t jo echt makke hawwe: lognivo, bewarjen, statusynterval en elke opname dy’t bewust ynskeakele is.
Dy beide budzjetten apart hâlde makket ynsidinten ek makliker lêsber. In folle skiif mei beskieden tunnelferkear wiist nei logs, opnames of eat net-relatearre, en de ynterface-teller sil it nea ferklearje. In fersêde skeakel mei in stil log wiist de oare kant út.
De fergeliking dy’t wurdich is, is tusken mjittingen fan deselde soarte. Ynterface-bytes tsjin ynterface-bytes oer de tiid fertelle jo oer it paad. Opslachskriuwsels tsjin opslachkapasiteit fertelle jo oer bewarjen. De krúsfergeliking, ferkear tsjin skiif, liket allinne sinfol en is it nea.