Пропустите велику датотеку кроз тунел и бројач интерфејса порасте за величину датотеке. Ништа у том броју не значи да је исти обим стигао на диск. У овим расправама упоређују се три различита мерења и она одговарају на три различита питања: колико је саобраћаја прешло мрежни слој, колико је бајтова процес прочитао и записао кроз системске позиве и колико је посла стигло до слоја складиштења.

Поређење првог са трећим уобичајена је грешка и она производи или фантомски проблем с диском или план капацитета који занемарује уписе који се заиста дешавају. Та три су раздвојива и свако има исправну употребу.

Три броја која се мешају

Бројачи интерфејса описују саобраћај који се обрађује на мрежном слоју. Они су исправан број за пропусност, за величину тунела и за моделе наплате који наплаћују транзит.

Бројачи знакова процеса описују бајтове пренесене кроз позиве читања и писања на било ком дескриптору, укључујући цеви, терминале и знаковне уређаје. Они су исправан број за питање колико је процес заузет на граници системског позива и нису дисковни рачун.

Бројачи складиштења описују бајтове које је кернел покушао да пренесе у блоковски уређај или из њега. Они су исправан број за планирање капацитета, уз напомену да кернел документује сопствене границе обрачуна: кеширана читања не постају читања складиштења, а упис који се касније откаже не постаје завршен упис на уређај.

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

Зашто дескриптор датотеке није упис на диск

VPN у корисничком простору размењује пакете с кернелом кроз TUN уређај, који је знаковни уређај, а не обична датотека. Читање из њега предаје пакет; писање у њега убацује пакет. Нема странице садржаја датотеке која се припрема за складиштење и нема укључене путање датотечног система.

Зато заузет тунел може да покаже огромне бројаче знакова готово без бројача складиштења. Процес је заиста пренео те бајтове и кернелу заиста није био потребан диск да то учини.

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

Први излаз читајте као кумулативни од покретања процеса, а не као стопу. Други даје поглед интерфејса на исти саобраћај. Велики јаз између њих је очекиван и не указује на цурење, ред или погрешну конфигурацију.

Одакле бајтови заиста долазе

Трајни излаз има сопствени буџет и њиме управљају операције, а не корисни терет. Обиман ниво дневника, листа клијената која се често мења или грешка која се понавља у тесној петљи могу да створе знатне уписе док тунел преноси врло мало.

Датотека стања је снимак који се преписује у интервалу, па њен трошак зависи од интервала и од тога колико записа садржи. Она није текућа копија саобраћаја сваког клијента, а скраћивање интервала мења обим уписа без промене обима саобраћаја.

Власништво је важно када тражите те уписе. Ако сервис предаје поруке демону за дневнике, дневник или датотеку пише тај демон и бајтови се појављују у његовом обрачуну, а не у сопственим бројачима VPN процеса. Гледање само у VPN процес не објашњава ни активност диска ни њено одсуство.

Остале доприносиоце је лако превидети: читања сертификата и конфигурације при покретању, куке које пишу сопствене записе, рачуноводствене додатке, исписе при рушењу и неповезане послове на истом хосту. Ниједан од њих не треба процењивати изједначавањем саобраћаја тунела са записаним бајтовима.

Исправно читање сваког бројача

Три појединости одлучују да ли поређење нешто значи. Идентитет процеса је важан јер рестартовани сервис поништава своје бројаче. Временски интервал је важан јер су кумулативна цифра и графикон по секунди различита мерења. И јединица је важна јер тренутна величина датотеке дневника такође није стопа.

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

Ако сумњате на стварне уписе корисног терета, потражите компоненту чији је посао да чува терет: алат за хватање пакета, прокси који кешира тела, додатак који архивира. Они стварају саобраћај према складиштењу који расте с оним што се од њих тражи да забележе и припадају засебној политичкој одлуци о задржавању и приступу.

Планирање капацитета с исправним бројем

Димензионишите путању пакета мрежним бројевима: пропусност, криптографска обрада и кретање меморије. Димензионишите складиштење изборима за посматрање које сте заиста направили: ниво дневника, задржавање, интервал стања и свако намерно омогућено хватање.

Држање тих двају буџета одвојеним такође олакшава читање инцидената. Пун диск уз скроман саобраћај тунела упућује на дневнике, хватања или нешто неповезано и бројач интерфејса то никада неће објаснити. Засићен линк уз тих дневник упућује на другу страну.

Поређење које је вредно је између мерења исте врсте. Бајтови интерфејса наспрам бајтова интерфејса кроз време говоре вам о путањи. Уписи на диск наспрам капацитета складиштења говоре вам о задржавању. Унакрсно поређење, саобраћај наспрам диска, само изгледа смислено и никада није.

Повезани чланци