Throughput perlahan melalui terowong dan mesin yang tersekat menunggu nombor rawak menghasilkan pengalaman yang sangat berbeza, namun kedua-duanya direkodkan di bawah aduan yang sama. Satu muncul sebagai jeda sebelum apa-apa berfungsi. Yang lain muncul sebagai sambungan yang berfungsi dan memindahkan data dengan perlahan selagi anda memerhatikannya. Menentukan yang mana anda ada mengambil masa sepuluh minit dan menjimatkan seminggu tekaan.

Dua simptom yang kelihatan serupa

Perkhidmatan yang tergantung selepas but baharu, sebelum menerima satu sambungan pun, sedang menunggu sesuatu. Terowong yang terbentuk dengan pantas dan kemudian memindahkan pada sebahagian kecil kadar yang dijangkakan dihadkan oleh sesuatu yang lain. Perkataan penyulitan muncul dalam kedua-dua cerita, sebab itu ia digabungkan. Pisahkan kedua-duanya sebelum anda menyentuh fail konfigurasi.

Letakkan cap masa di sekitar permulaan, pengesahan, rundingan semula kunci dan pemindahan itu sendiri. Kelewatan panjang sebelum terowong boleh digunakan bukanlah kadar rendah yang stabil, dan purata kedua-duanya menjadi satu nombor memusnahkan bukti.

systemd-analyze blame | head -10
journalctl -u [email protected] -o short-precise | head -40
cat /proc/sys/kernel/random/entropy_avail

Dua arahan pertama meletakkan kerja permulaan pada garis masa. Yang ketiga mencetak nilai perakaunan entropi kernel, yang berguna sebagai satu titik data dan tidak berguna sebagai meter lebar jalur.

Bagaimana penantian nombor rawak sebenarnya kelihatan

Permintaan untuk bait rawak yang selamat boleh menyekat sehingga kernel memulakan sumber rawaknya. Itu paling penting pada mesin maya dan papan terbenam kecil pada awal but, apabila sedikit bunyi persekitaran telah dikumpulkan. Daripada itu tidak bermakna setiap bait yang disulitkan menggunakan entropi segar.

Penjana moden di-seed sekali dan kemudian menghasilkan output daripada pembinaan deterministik, menyemai semula mengikut jadual mereka sendiri. Pemindahan pukal tidak mengosongkan kolam bait demi bait, jadi nilai kolam yang rendah semasa pemindahan perlahan tidak membuktikan apa-apa tentang puncanya.

strace -f -e trace=getrandom -p $(pidof openvpn) 2>&1 | head -20
dmesg | grep -i 'random\|crng'

Arahan pertama menunjukkan sama ada proses itu berada dalam panggilan nombor rawak semasa anda memerhati. Yang kedua menunjukkan mesej permulaan kernel sendiri, dan di situlah genangan but awal menjadi kelihatan.

Catat versi kernel dan pustaka yang benar-benar dipautkan oleh perkhidmatan, kerana tingkah laku berbeza antara pelaksanaan dan antara keluaran. Surih yang diambil selepas pemulihan biasanya terlepas jeda sepenuhnya.

Bagaimana kelambatan berterusan sebenarnya kelihatan

Terowong yang memindahkan perlahan sepanjang masa dihadkan oleh laluan data. Satu benang yang tepu, kehilangan paket luar, penghantaran semula atau baris soket penuh masing-masing menghasilkan corak itu, dan masing-masing mempunyai pembetulannya sendiri. Peratusan CPU agregat menyembunyikan satu benang sibuk, dan itulah salah baca yang paling biasa. Lihat masa setiap benang sebelum melihat beban keseluruhan.

Ukur dalam kedua-dua arah dengan garis dasar yang setanding, dan pantau pembilang antara muka dan bukannya laporan aplikasi itu sendiri.

ss -tin dst 203.0.113.10
nstat -az | grep -i 'drop\|retrans'
ethtool -S eth0 | grep -i 'drop\|error'

Arahan pertama menunjukkan keadaan baris dan kesesakan untuk satu rakan. Kedua dan ketiga melaporkan penurunan dan penghantaran semula pada tindanan dan pada antara muka, di situlah punca biasanya muncul dahulu.

Pilih pembetulan untuk kesesakan yang anda ukur

Jika bukti menunjukkan permulaan awal but, lihat laluan penyemaian yang disokong platform, yang pada mesin maya mungkin termasuk peranti rawak yang disediakan oleh hos. Imej benih yang disalin tanpa perubahan ke banyak tetamu bukan pengganti permulaan bebas.

Jika bukti menunjukkan laluan data, laraskan apa yang ditunjukkan oleh pembilang. Saiz penimbal membantu apabila baris melimpah dan tidak melakukan apa-apa apabila satu benang tepu. Memasang daemon entropi untuk menaikkan pembilang bukan pembaikan throughput, dan menukar andaian penyemaian supaya graf kelihatan lebih baik menukar sifat keselamatan dengan nombor.

Terima perubahan hanya apabila ukuran yang sama bertambah baik dalam keadaan yang sama. Pembilang yang lebih besar bukan hasil; penantian terukur yang lebih pendek atau pemindahan yang lebih pantas dengan punca yang dikenal pasti ialah hasilnya.

Artikel berkaitan