Provedite veliku datoteku kroz tunel i brojač sučelja poraste za veličinu datoteke. Ništa u tom broju ne znači da je isti obujam stigao na disk. U ovim se raspravama uspoređuju tri različita mjerenja i ona odgovaraju na tri različita pitanja: koliko je prometa prešlo mrežni sloj, koliko je bajtova proces pročitao i zapisao kroz sistemske pozive i koliko je posla stiglo do sloja pohrane.

Uspoređivanje prvog s trećim uobičajena je pogreška i ona proizvodi ili fantomski problem s diskom ili plan kapaciteta koji zanemaruje zapise koji se doista događaju. Ta su tri odvojiva i svako ima ispravnu upotrebu.

Tri broja koja se miješaju

Brojači sučelja opisuju promet koji se obrađuje na mrežnom sloju. Oni su ispravan broj za propusnost, za veličinu tunela i za modele naplate koji naplaćuju tranzit.

Brojači znakova procesa opisuju bajtove prenesene kroz pozive čitanja i pisanja na bilo kojem deskriptoru, uključujući cijevi, terminale i znakovne uređaje. Oni su ispravan broj za pitanje koliko je proces zauzet na granici sistemskog poziva i nisu diskovni račun.

Brojači pohrane opisuju bajtove koje je kernel pokušao prenijeti u blokovski uređaj ili iz njega. Oni su ispravan broj za planiranje kapaciteta, uz napomenu da kernel dokumentira vlastite granice obračuna: predmemorirana čitanja ne postaju čitanja pohrane, a zapis koji se kasnije otkaže ne postaje dovršen zapis na uređaj.

MeasurementQuestion it answers
Interface bytesHow much traffic crossed this layer
rchar and wcharHow much data the process moved through system calls
read_bytes and write_bytesHow much work reached the storage layer

Zašto deskriptor datoteke nije zapis na disk

VPN u korisničkom prostoru razmjenjuje pakete s kernelom kroz uređaj TUN, koji je znakovni uređaj, a ne obična datoteka. Čitanje iz njega predaje paket; pisanje u njega ubacuje paket. Nema stranice sadržaja datoteke koja se priprema za pohranu i nema uključene staze datotečnog sustava.

Zato zauzet tunel može pokazivati goleme brojače znakova gotovo bez brojača pohrane. Proces je doista prenio te bajtove i kernelu doista nije trebao disk da to učini.

cat /proc/$(pgrep -n openvpn)/io
ip -s link show tun0

Prvi izlaz čitajte kao kumulativni od pokretanja procesa, a ne kao stopu. Drugi daje pogled sučelja na isti promet. Velik jaz između njih je očekivan i ne upućuje na curenje, red ili pogrešnu konfiguraciju.

Odakle bajtovi doista dolaze

Trajni izlaz ima vlastiti proračun i njime upravljaju operacije, a ne korisni teret. Opširan nivo dnevnika, popis klijenata koji se često mijenja ili pogreška koja se ponavlja u tijesnoj petlji mogu stvarati znatne zapise dok tunel prenosi vrlo malo.

Datoteka stanja je snimka koja se prepisuje u intervalu, pa njezin trošak ovisi o intervalu i o tome koliko zapisa sadrži. Ona nije tekuća kopija prometa svakog klijenta, a skraćivanje intervala mijenja obujam zapisa bez promjene obujma prometa.

Vlasništvo je važno kad tražite te zapise. Ako usluga predaje poruke demonu za dnevnike, dnevnik ili datoteku piše taj demon i bajtovi se pojavljuju u njegovu obračunu, a ne u vlastitim brojačima procesa VPN. Gledanje samo u proces VPN ne objašnjava ni aktivnost diska ni njezinu odsutnost.

Ostale doprinositelje lako je previdjeti: čitanja certifikata i konfiguracije pri pokretanju, kuke koje pišu vlastite zapise, računovodstvene dodatke, ispise pri rušenju i nepovezane poslove na istom hostu. Nijedan od njih ne treba procjenjivati izjednačavanjem prometa tunela sa zapisanim bajtovima.

Ispravno čitanje svakog brojača

Tri pojedinosti odlučuju znači li usporedba nešto. Identitet procesa je važan jer restartana usluga poništava svoje brojače. Vremenski interval je važan jer su kumulativna brojka i grafikon po sekundi različita mjerenja. I jedinica je važna jer trenutačna veličina datoteke dnevnika također nije stopa.

grep -E 'rchar|wchar|read_bytes|write_bytes' /proc/$(pgrep -n openvpn)/io
du -sh /var/log/openvpn 2>/dev/null
journalctl --disk-usage

Ako sumnjate na stvarne zapise korisnog tereta, potražite komponentu čiji je posao čuvati teret: alat za hvatanje paketa, proxy koji kešira tijela, dodatak koji arhivira. Oni stvaraju promet prema pohrani koji raste s onim što se od njih traži da zabilježe i pripadaju zasebnoj odluci o politici zadržavanja i pristupa.

Planiranje kapaciteta s ispravnim brojem

Dimenzionirajte putanju paketa mrežnim brojevima: propusnost, kriptografska obrada i kretanje memorije. Dimenzionirajte pohranu izborima za promatranje koje ste doista napravili: nivo dnevnika, zadržavanje, interval stanja i svako hvatanje koje je namjerno omogućeno.

Držanje tih dvaju proračuna odvojenima također olakšava čitanje incidenata. Pun disk uz skroman promet tunela upućuje na dnevnike, hvatanja ili nešto nepovezano i brojač sučelja to nikada neće objasniti. Zasićena veza uz tih dnevnik upućuje na drugu stranu.

Usporedba koja je vrijedna je između mjerenja iste vrste. Bajtovi sučelja nasuprot bajtovima sučelja kroz vrijeme govore vam o putanji. Zapisi na disk nasuprot kapacitetu pohrane govore vam o zadržavanju. Unakrsna usporedba, promet nasuprot disku, samo izgleda smisleno i nikada nije.

Povezani članci