OpenVPN бројачи на сообраќај наспроти диск I/O: три различни броја
Бајтите на интерфејсот, бројачите на знаци на процесот и записите на диск мерат различна работа. Споредете ги пред да планирате дискови според обемот на тунелот.
Пропуштете голема датотека низ тунел и бројачот на интерфејсот ќе се зголеми за големината на датотеката. Ништо во тој број не значи дека истиот обем стигнал до диск. Во овие дискусии се споредуваат три различни мерења и тие одговараат на три различни прашања: колку сообраќај преминал низ мрежен слој, колку бајти процесот прочитал и запишал преку системски повици и колку работа стигнала до слојот за складирање.
Споредувањето на првото со третото е вообичаена грешка и тоа создава или фантомски проблем со дискот или план за капацитет што ги игнорира записите што навистина се случуваат. Трите се раздвојливи и секое има правилна употреба.
Три броја што се мешаат
Бројачите на интерфејсот опишуваат сообраќај што се обработува на мрежен слој. Тие се правилниот број за пропусен опсег, за големината на тунелот и за модели на наплата што го ценат транзитот.
Бројачите на знаци на процесот опишуваат бајти преместени преку повици за читање и пишување на кој било опис, вклучувајќи цевки, терминали и знаковни уреди. Тие се правилниот број за прашањето колку е зафатен процесот на границата на системскиот повик и не се сметка за складирање.
Бројачите за складирање опишуваат бајти што јадрото се обидело да ги премести кон блоковски уред или од него. Тие се правилниот број за планирање капацитет, со забелешката дека јадрото ги документира сопствените граници на пресметување: кешираните читања не стануваат читања од складирање, а записот што подоцна се откажува не станува завршен запис на уред.
| 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 |
Зошто описот на датотека не е запис на диск
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
Ако се сомневате во вистински записи на полезниот товар, побарајте компонента чија задача е да го чува товарот: алатка за фаќање пакети, прокси што ги кешира телата, додаток што архивира. Тие создаваат сообраќај кон складирањето што се зголемува со она што се бара од нив да го запишат и припаѓаат на посебна политичка одлука за задржување и пристап.
Планирање капацитет со правилниот број
Измерете ја патеката на пакетите со мрежни броеви: пропусност, криптографска обработка и движење на меморијата. Измерете го складирањето со изборите за набљудување што навистина ги направивте: степен на дневник, задржување, интервал на состојба и секое намерно овозможено фаќање.
Одвојувањето на двата буџета го олеснува и читањето на инциденти. Полн диск со скромен тунелски сообраќај упатува на дневници, фаќања или нешто неповрзано и бројачот на интерфејсот никогаш нема да го објасни тоа. Заситена врска со тивок дневник упатува на другата страна.
Споредбата што вреди е меѓу мерења од ист вид. Бајтите на интерфејсот наспроти бајтите на интерфејсот низ времето ви кажуваат за патеката. Записите на диск наспроти капацитетот за складирање ви кажуваат за задржувањето. Вкрстената споредба, сообраќај наспроти диск, само изгледа значајна и никогаш не е.