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
Эгер чыныгы пайдалуу жүк жазууларына шектенсеңиз, милдети пайдалуу жүктү сактоо болгон компонентти издеңиз: пакеттерди кармоо куралы, денелерди кэштеген прокси, архивдеген кошумча. Алар өздөрүнөн жазуу талап кылынган көлөмгө жараша өсүүчү сактоо трафигин жаратат жана сактоо менен жетүү боюнча өзүнчө саясий чечимге таандык.
Сыйымдуулукту туура сан менен пландоо
Пакет жолун тармактык сандар менен өлчөңүз: өткөрүү жөндөмү, криптографиялык иштетүү жана эстутум кыймылы. Сактоону сиз чын эле кабыл алган байкоо чечимдери менен өлчөңүз: журнал деңгээли, сактоо мөөнөтү, абал аралыгы жана атайын күйгүзүлгөн кармоо.
Бул эки бюджетти өзүнчө кармоо окуяларды окууну жеңилдетет. Орточо туннел трафиги менен толгон диск журналдарга, кармоолорго же байланышсыз нерсеге көрсөтөт жана интерфейс эсептегичи муну эч качан түшүндүрбөйт. Тынч журнал менен каныккан байланыш карама-каршы жакты көрсөтөт.
Жасоого татыктуу салыштыруу — бир эле түрдөгү өлчөмдөрдүн ортосунда. Убакыт боюнча интерфейс байттары интерфейс байттарына каршы жол тууралуу айтат. Сактоо жазуулары сактоо сыйымдуулугуна каршы сактоо мөөнөтү тууралуу айтат. Кайчылаш салыштыруу, трафик дискке каршы, пайдалуу болуп гана көрүнөт жана эч качан андай болбойт.