Latency antara 2 host linux adalah sekitar .23ms. Mereka terhubung dengan satu saklar. Ping & Wireshark mengkonfirmasi nomor latensi. Tapi, saya tidak memiliki visibilitas apa yang menyebabkan latensi ini. Bagaimana saya bisa tahu jika latensi disebabkan oleh NIC pada host A atau B atau saklar atau kabel?
UPDATE: .23 ms latency buruk untuk aplikasi saya yang ada, yang mengirim pesan pada frekuensi yang sangat tinggi dan saya mencoba untuk melihat apakah itu dapat dibawa ke .1ms
Jawaban:
Secara umum, Anda dapat menggunakan beberapa sakelar lanjutan ke utilitas iperf untuk mendapatkan tampilan kinerja jaringan antar sistem, khususnya latensi dan jitter ...
Apakah ini aliran pesan berbasis UDP atau TCP?
Saya berkomentar di atas karena memerlukan informasi lebih lanjut tentang pengaturan Anda. Jika ini adalah aplikasi olahpesan latensi rendah, ada seluruh dunia teknik tuning dan optimisasi yang menjangkau peranti keras, driver, dan tweaker OS. Tapi sungguh, kami membutuhkan informasi lebih lanjut.
Edit:
Oke, jadi ini adalah perpesanan TCP. Sudahkah Anda mengubah
/etc/sysctl.conf
parameter apa pun ? Seperti apa bentuk pengiriman / penerimaan buffer Anda? Menggunakan kernel realtime saja tidak akan banyak membantu, tetapi jika Anda pindah ke titik di mana Anda mengikat interupsi ke CPU, mengubah prioritas waktu nyata dari aplikasi perpesanan (chrt
) dan mungkin memodifikasituned-adm
profil sistem dapat membantu ...Ini kedengarannya seperti sistem EL6 umum, jadi cara mudah untuk menetapkan garis dasar penyetelan kinerja melibatkan mengubah profil kinerja sistem ke yang lain yang tersedia dalam kerangka kerja yang disetel . Kemudian bangun dari sana.
Dalam kasus Anda:
Matriks cepat yang menunjukkan perbedaan:
Bisakah Anda memberi tahu kami tentang perangkat kerasnya? Jenis-jenis CPU, NIC, memori?
Jadi, mungkin menarik untuk menguji tautan Anda ... Coba uji iperf ini ...
Pada satu sistem, mulai pendengar UDP iperf. Di sisi lain, buka koneksi ke yang pertama ... Tes kualitas saluran cepat.
Dalam kasus saya, jitter rendah dan waktu ping rendah:
Saya akan memeriksa perangkat keras dan antarmuka untuk kesalahan. Jika Anda mau, hilangkan sakelar antar sistem dan lihat seperti apa koneksi langsung itu. Anda tidak ingin jitter tinggi (varian), jadi periksa itu.
Tetapi jujur, bahkan dengan waktu ping yang Anda dapatkan pada pengaturan saat ini, itu tidak cukup untuk mematikan aplikasi Anda. Saya akan menyusuri jalur penyetelan / penerimaan buffer Anda. Lihat:
net.core.rmem_max
,net.core.wmem_max
dan default mereka ...Sesuatu seperti yang berikut ini di
/etc/sysctl.conf
(harap sesuaikan selera):sumber
tuned-adm
profil Anda .