GNU/Linux >> Belajar Linux >  >> Linux

Memecahkan masalah komunikasi jaringan yang lambat atau Batas Waktu Koneksi di Linux

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 Linux

2. 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"


Linux
  1. Memecahkan masalah WiFi lambat di Linux

  2. 10 Perintah Linux Untuk Diagnostik Jaringan

  3. 5 perintah pemecahan masalah jaringan Linux

  1. Pemecahan Masalah Jaringan Linux Dan Debugging?

  2. Linux – Media Lambat – Penyetelan Cache Disk?

  3. 'jaringan' Layanan OS Linux

  1. Kelola koneksi jaringan dari baris perintah Linux dengan nmcli

  2. Memecahkan masalah perangkat keras di Linux

  3. Apakah ada STDCALL di Linux?