OpenVPN trafik sayğacları disk G/Ç ilə: üç fərqli rəqəm
İnterfeys baytları, prosesin simvol sayğacları və disk yazmaları fərqli işləri ölçür. Diskləri tunel həcminə görə planlaşdırmadan əvvəl onları müqayisə edin.
Böyük bir faylı tuneldən keçirin və interfeys sayğacı faylın ölçüsü qədər artır. Bu rəqəmin heç bir hissəsi həmin həcmin diskə çatdığını demir. Bu müzakirələrdə üç fərqli ölçmə müqayisə olunur və onlar üç fərqli suala cavab verir: nə qədər trafik bir şəbəkə qatını keçdi, bir proses sistem çağırışları ilə nə qədər bayt oxudu və yazdı, və nə qədər iş yaddaş qatına çatdı.
Birincini üçüncü ilə müqayisə etmək adi səhvdir və o, ya xəyali disk problemi, ya da həqiqətən baş verən yazmaları nəzərə almayan tutum planı doğurur. Üçü ayrıla biləndir və hər birinin düzgün istifadəsi var.
Bir-birinə qarışdırılan üç rəqəm
İnterfeys sayğacları şəbəkə qatında idarə olunan trafiki təsvir edir. Onlar bant genişliyi, tunelin ölçüsü və tranziti qiymətləndirən tarif modelləri üçün düzgün rəqəmdir.
Prosesin simvol sayğacları borular, terminallar və simvol cihazları daxil olmaqla hər hansı deskriptorda oxuma və yazma çağırışları ilə köçən baytları təsvir edir. Onlar prosesin sistem çağırışı sərhədində nə qədər məşğul olduğunu soruşmaq üçün düzgün rəqəmdir və yaddaş hesabı deyillər.
Yaddaş sayğacları nüvənin blok cihazına və ya ondan köçürməyə çalışdığı baytları təsvir edir. Onlar tutum planlaşdırması üçün düzgün rəqəmdir, lakin nüvə öz hesabat məhdudiyyətlərini sənədləşdirir: keşlənmiş oxumalar yaddaş oxumasına çevrilmir və sonradan ləğv edilən yazma tamamlanmış cihaz yazmasına çevrilmir.
| 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 |
Nə üçün fayl deskriptoru disk yazması deyil
İstifadəçi məkanındakı VPN nüvə ilə paketləri TUN cihazı vasitəsilə mübadilə edir, bu isə adi fayl deyil, simvol cihazıdır. Ondan oxumaq paket verir; ona yazmaq paket yeridir. Yaddaşa hazırlanan fayl məzmunu səhifəsi və fayl sistemi yolu yoxdur.
Buna görə məşğul tunel demək olar heç yaddaş sayğacı olmadan nəhəng simvol sayğacları göstərə bilər. Proses həmin baytları həqiqətən köçürdü və nüvənin bunu etmək üçün həqiqətən diskə ehtiyacı olmadı.
cat /proc/$(pgrep -n openvpn)/io
ip -s link show tun0
Birinci çıxışı proses başlayandan bəri toplanmış kimi oxuyun, sürət kimi deyil. İkincisi eyni trafikin interfeys görünüşünü verir. İkisi arasındakı böyük fərq gözləniləndir və sızma, növbə və ya yanlış konfiqurasiya göstərmir.
Baytlar əslində haradan gəlir
Davamlı çıxışın öz büdcəsi var və o, yükdən deyil, əməliyyatlardan qaynaqlanır. Uzun log səviyyəsi, tez-tez dəyişən müştəri siyahısı və ya sıx dövrədə təkrarlanan xəta tunel çox az daşıyarkən əhəmiyyətli yazmalar yarada bilər.
Status faylı müəyyən intervalda yenidən yazılan anlıq görüntüdür, ona görə də xərci intervaldan və içindəki qeydlərin sayından asılıdır. O, hər müştərinin trafikinin davamlı surəti deyil və intervalı qısaltmaq trafik həcmini dəyişmədən yazma həcmini dəyişir.
Həmin yazmaları axtaranda sahiblik önəm daşıyır. Xidmət mesajları log demonuna verirsə, jurnal və ya log faylı həmin demon tərəfindən yazılır və baytlar VPN prosesinin öz sayğaclarında deyil, demonun hesabatında görünür. Yalnız VPN prosesinə baxmaq nə disk fəaliyyətini, nə də onun olmamasını izah edir.
Digər töhfəçiləri gözdən qaçırmaq asandır: başlanğıcda sertifikat və konfiqurasiya oxumaları, öz qeydlərini yazan qarmaqlar, hesabat plaginləri, qəza dump-ları və eyni hostdakı əlaqəsiz yüklər. Heç biri tunel trafikini yazılan baytlarla bərabərləşdirməklə təxmin edilməməlidir.
Hər sayğacı düzgün oxumaq
Üç detal müqayisənin məna daşıyıb-daşımadığını həll edir. Prosesin kimliyi önəmlidir, çünki yenidən başladılan xidmət sayğaclarını sıfırlayır. Vaxt intervalı önəmlidir, çünki toplanmış rəqəm və saniyəlik qrafik fərqli ölçmələrdir. Və vahid önəmlidir, çünki log faylının cari ölçüsü də sürət deyil.
grep -E 'rchar|wchar|read_bytes|write_bytes' /proc/$(pgrep -n openvpn)/io
du -sh /var/log/openvpn 2>/dev/null
journalctl --disk-usage
Əgər real yük yazmalarından şübhələnirsinizsə, vəzifəsi yükü saxlamaq olan komponent axtarın: paket tutma aləti, gövdələri keşləyən proksi, arxivləyən plagin. Onlar nə qədər qeyd etmələri tələb olunursa, o qədər miqyaslanan yaddaş trafiki yaradır və saxlanma və girişlə bağlı ayrı siyasət qərarına aiddir.
Tutumu düzgün rəqəmlə planlaşdırmaq
Paket yolunu şəbəkə rəqəmləri ilə ölçün: ötürmə qabiliyyəti, kriptoqrafik emal və yaddaş hərəkəti. Yaddaşı həqiqətən etdiyiniz müşahidə seçimləri ilə ölçün: log səviyyəsi, saxlanma, status intervalı və qəsdən aktivləşdirilmiş hər hansı tutma.
Bu iki büdcəni ayrı saxlamaq insidentləri oxumağı da asanlaşdırır. Mülayim tunel trafiki ilə dolu disk loglara, tutmalara və ya əlaqəsiz bir şeyə işarə edir və interfeys sayğacı bunu heç vaxt izah etməyəcək. Sakit logla doymuş kanal başqa tərəfə işarə edir.
Dəyərli müqayisə eyni növdən olan ölçmələr arasındadır. İnterfeys baytları zamanla interfeys baytlarına qarşı yol haqqında danışır. Yaddaş yazmaları yaddaş tutumuna qarşı saxlanma haqqında danışır. Çarpaz müqayisə, trafik diskə qarşı, yalnız mənalı görünür və heç vaxt mənalı deyil.