Apakah gateway VPN Anda terbatas pada CPU? Baca dulu beban per inti
Rata-rata menyembunyikan thread yang penting. Baca beban per inti terhadap transfer terkendali, singkirkan jalur, lalu ubah satu setelan terdokumentasi per eksekusi.
Tentukan batas mana dari tiga batas yang sudah Anda capai sebelum membeli instans yang lebih besar. Satu inti penuh sementara sisanya menganggur menunjukkan kerja kripto per aliran. Semua inti jenuh selama transfer menunjukkan kapasitas agregat. CPU rendah dengan jumlah pengiriman ulang yang naik menunjukkan jalur. Masing-masing punya langkah pertama berbeda, dan hanya satu yang dijawab oleh instans yang lebih besar.
Tiga batas, satu tabel, tiga perbaikan
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, loss, host contention |
Baca barisnya sebagai diagnosis, bukan tahap. Satu utas pada 100% sementara yang lain menganggur adalah hasil paling umum pada gateway yang membawa satu terowongan besar, karena enkripsi aliran itu berjalan di satu inti. Semua inti sibuk selama transfer berarti mesin sudah melakukan sebanyak mungkin pekerjaan. CPU rendah dengan pengiriman ulang yang meningkat berarti prosesor menunggu jaringan yang terus menjatuhkan data.
Perbaiki dalam urutan bukti itu. Menyebarkan aliran ke pekerja membantu kasus pertama dan tidak melakukan apa pun untuk kasus kedua. Instans yang lebih besar membantu kasus kedua dan membuang uang pada kasus pertama. Perbaikan MTU atau kehilangan paket adalah satu-satunya yang menyentuh kasus ketiga. Membeli kapasitas sebelum tahu di baris mana Anda berada adalah versi mahal dari menebak.
Pisahkan utas yang tertambat dari host yang sibuk
Mulai dari penggunaan per inti, agar satu inti yang tertambat tidak bisa bersembunyi di dalam rata-rata. Satu eksekusi selama transfer menunjukkan apakah bebannya datar atau berlonjakan. Kedua bentuk informatif, dan profil berlonjakan sering berarti jendela pengambilan sampel menangkap aktivitas penjadwal alih-alih enkripsi.
mpstat -P ALL 1 5
Kaitkan inti yang sibuk ke sebuah proses, lalu ke sebuah utas. Eksekusi lanjutan di bawah menjaga utas induk dan anak tetap bersama, yang penting saat daemon melakukan fork per koneksi:
pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10
Kripto kernel tidak pernah muncul di penghitung proses ruang pengguna. Ambil sampel utas secara terpisah dan bandingkan pandangan itu dengan akuntansi proses:
top -H -b -n 1 | head -20
Baca penghitung soket terakhir, karena itu yang menentukan apakah CPU tambahan akan membantu sama sekali. Pengiriman ulang yang naik sementara CPU datar bukan masalah prosesor. Biarkan transfer berjalan saat mengambil sampel, atau angkanya akan menggambarkan mesin yang menganggur:
ss -ti | grep -E 'retrans|cwnd|rtt'
Transfer terkendali, dijalankan dua kali
Penghitung menganggur tidak membuktikan apa pun, dan tolok ukur terhadap titik akhir acak membuktikan sangat sedikit. Pilih satu klien, satu tujuan, dan satu transfer representatif yang boleh Anda jalankan, lalu catat throughput dan latensi interaktif di jendela yang sama. Gateway bisa jenuh sementara salinan massal masih selesai, dan kurva latensi adalah yang benar-benar dirasakan pengguna. Tulis transfer, jumlah klien, dan versi daemon di samping angka.
Ulangi eksekusi dengan beberapa aliran paralel. Peningkatan di seluruh aliran menunjukkan penjendelaan per aliran; tetap datar dengan satu inti tertambat menunjukkan pemrosesan.
Lalu ulangi sekali lagi dengan beban kerja opsional dihentikan. Cadangan, pengirim log, atau basis data di host yang sama dapat menghasilkan rata-rata sibuk yang tidak ada hubungannya dengan terowongan. Jika CPU masih tertambat sementara host sebaliknya tenang, bukti mengarah ke proses VPN. Jika turun, Anda mengukur tetangga, dan gateway tidak pernah menjadi masalah.
Singkirkan jalur sebelum membeli perangkat keras
Pengiriman ulang yang naik, jendela kemacetan yang menyusut, dan waktu pulang-pergi yang tumbuh semuanya menjauh dari prosesor. Bandingkan MTU terowongan dengan MTU jalur, periksa tautan dasar terhadap kehilangan paket, dan pastikan uplink klien sendiri bukan batasnya. Gateway yang lebih besar tidak memperbaiki tautan yang menjatuhkan paket, dan pengguna menggambarkan kedua gangguan dengan kata yang sama. Penghitung pengiriman ulang memisahkannya dalam hitungan menit.
Pada server virtual, tambahkan metrik penyedia ke metrik tamu. Waktu curian adalah cara penjualan berlebih menjadi terlihat di dalam tamu, dan tidak ada penyetelan di dalam tamu yang menghilangkannya. Penghitung tamu tidak dapat melihat host, jadi grafik tamu yang bersih bukan bukti host yang sehat.
Satu perubahan, satu pengukuran
Pilih hipotesis yang didukung bukti, lalu ubah tepat satu setelan yang didukung: jumlah pekerja, opsi pembongkaran beban yang terdokumentasi, atau ukuran instans. OpenVPN menerbitkan panduan pemecahan masalah kinerja tentang pembagian yang sama antara pemrosesan dan transportasi: Pemecahan masalah kinerja OpenVPN.
Pastikan opsi pembongkaran beban benar-benar aktif alih-alih memercayai tanda, lalu jalankan ulang transfer yang identik dan bandingkan yang setara. Itulah satu-satunya cara membedakan peningkatan nyata dari sore yang tenang. Simpan titik pemeriksaan yang dapat Anda pulihkan, karena pada perubahan kedua orang kehilangan jejak mana yang membantu. Satu variabel per eksekusi lambat untuk sehari dan cepat untuk sebulan.
Jangan melemahkan autentikasi atau rangkaian sandi agar grafik terlihat lebih baik. Jika CPU masih tidak mengikuti gejala, kembalilah ke pemeriksaan jalur dan aplikasi alih-alih meningkatkan berdasarkan dugaan.