Memecahkan masalah jaringan yang lambat atau penurunan paket jaringan bisa jadi rumit. Selain komunikasi jaringan yang lebih lambat, mungkin ada gejala tambahan yang diamati, seperti :
- Upaya untuk terhubung ke server dengan ssh dan/atau sftp mengakibatkan waktu habis atau respons tertunda.
- Saat beban jaringan menjadi tinggi, jumlah transmisi ulang jaringan yang diamati sangat tinggi.
- Mungkin ada sejumlah besar packet drop yang terlihat pada output dari perintah ” ifconfig eth[x] ”.
Beberapa gejala lain juga termasuk:
– Output dari perintah:netstat -s menunjukkan peningkatan nilai untuk statistik berikut :(jalankan beberapa kali 'netstat -s'):
13336 packets pruned from receive queue because of socket buffer overrun 516 times the listen queue of a socket overflowed 516 SYNs to LISTEN sockets ignored 2040077 packets collapsed in receive queue due to low socket buffer TCPBacklogDrop: 744165
– Output dari perintah :ethtool -S eth[x] menunjukkan peningkatan nilai terhadap counter :“rx_fw_discards”:
rx_fw_discards: 4493
Penyebab kinerja jaringan yang lebih lambat
Mungkin ada beberapa alasan untuk kinerja jaringan yang lebih lambat. Namun beberapa kemungkinan penyebabnya adalah :
- Jaringan sudah terisi penuh, mencapai kapasitas maksimum dan terjadi kemacetan.
- Buffer penerima yang dikonfigurasi tidak cukup untuk beban jaringan.
- Ada paket yang jatuh karena kesalahan pada lapisan fisik.
Memecahkan masalah kinerja jaringan yang lambat
1. Periksa throughput jaringan menggunakan alat iperf dan temukan apakah pemanfaatan bandwidth jaringan mendekati throughput maksimum yang diamati.
Cara Menggunakan Iperf untuk Menguji Kinerja Jaringan di Linux2. Tetapkan nilai parameter jaringan dengan tepat untuk mendukung throughput jaringan maksimum. Temukan nilai Bandwidth delay product (BDP) dan atur ukuran buffer jaringan yang sesuai. Ini dihitung sebagai produk dari bandwidth tautan, dan Waktu Pulang Pergi.
Misalnya:
– Untuk jaringan 1 Gb/dtk dan Waktu Perjalanan Putaran 0,1 dtk, BDP=(0,1 * 10^9)/8. Pada jaringan seperti itu, tetapkan nilai parameter berikut di bawah file:/etc/sysctl.conf
# vi /etc/sysctl.conf net.core.rmem_max = 12500000 net.core.wmem_max = 12500000 net.ipv4.tcp_rmem = 4096 87380 12500000 net.ipv4.tcp_wmem = 4096 65536 12500000
Dan tingkatkan parameter berikut juga :
# vi /etc/sysctl.conf net.core.netdev_max_backlog = 30000 net.ipv4.tcp_max_syn_backlog = 4096
Dan kemudian jalankan perintah:
# sysctl -p
a) Untuk kedua perubahan tersebut, sistem tidak perlu di-boot ulang.
b) Posting perubahan ini, diperlukan untuk memantau output dari perintah “netstat -s” dan memeriksa apakah penghitung berikut masih terlihat meningkat:
packets pruned from receive queue because of socket buffer overrun times the listen queue of a socket overflowed SYNs to LISTEN sockets ignored packets collapsed in receive queue due to low socket buffer TCPBacklogDrop
3. Tingkatkan ukuran buffer RX Ring NIC. Ada trade-off saat mengatur nomor ini. Nilai yang lebih besar dapat menunda pemrosesan paket dan nilai yang lebih rendah dapat menyebabkan paket turun ketika driver yang sesuai mengalami penundaan saat memproses paket yang masuk.
a) Secara umum, mulailah dengan menggandakan ukuran Ring RX dan pantau output dari perintah “ethtool -S eth[x]”.
# ethtool -G eth[x] rx 512
b) Untuk membuat perubahan ini permanen, tambahkan berikut ini ke file:/etc/sysconfig/network-scripts/ifcfg-eth[x] :
# vi /etc/sysconfig/network-scripts/ifcfg-eth[x] ETHTOOL_OPTS="-G rx 512"