Dalam bidang komputer moden, protokol TCP/IP adalah asas untuk komunikasi rangkaian. Sebagai sistem pengendalian sumber terbuka, Linux telah menjadi sistem pengendalian pilihan yang digunakan oleh banyak perniagaan dan organisasi. Walau bagaimanapun, apabila aplikasi dan perkhidmatan rangkaian menjadi komponen perniagaan yang semakin kritikal, pentadbir selalunya perlu mengoptimumkan prestasi rangkaian untuk memastikan pemindahan data yang pantas dan boleh dipercayai.
Artikel ini akan memperkenalkan cara meningkatkan kelajuan penghantaran rangkaian sistem Linux dengan mengoptimumkan prestasi TCP/IP dan prestasi rangkaian sistem Linux. Artikel ini akan meneroka beberapa parameter TCP yang diperlukan dan cara mengubahnya untuk mengoptimumkan prestasi rangkaian. Artikel ini juga akan memperkenalkan cara menggunakan beberapa alat CLI dan kernel biasa untuk menyemak prestasi rangkaian dalam sistem, dan memberikan pembaca beberapa contoh kod.
1. Fahami tcp tw_reuse
Sambungan TCP ialah protokol pengangkutan berorientasikan sambungan, jadi alamat IP dan gabungan port mestilah berbeza untuk membuat sambungan baharu. Selepas pelanggan dan pelayan telah ditutup, tetapi Linux masih menunggu untuk tempoh masa apabila sambungan mungkin telah dibuat baru-baru ini, percubaan dibuat untuk mewujudkan sambungan tcp. Tempoh masa ini dipanggil keadaan "TIME_WAIT", dan sambungan dalam keadaan ini tidak boleh digunakan semula. Tingkah laku ini boleh memperlahankan prestasi TCP/IP pelayan.
Untuk mengelakkan situasi ini, kita boleh menggunakan parameter tw_reuse. Mendayakan tw_reuse membolehkan sambungan keluar digunakan semula tanpa menunggu tempoh masa tertentu. Parameter ini boleh didayakan melalui arahan berikut:
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
2. Laraskan parameter TCP keepalive dengan sewajarnya
TCP keepalive ialah mekanisme yang boleh mengesan sama ada sambungan masih aktif dan menghalang kehilangan sambungan akibat isu kesesakan rangkaian. TCP keepalive menyemak status sambungan secara berkala untuk menentukan sama ada sambungan masih aktif dan menutup sambungan jika tidak.
Melaraskan parameter keepalive TCP boleh meningkatkan prestasi penghantaran. Berikut ialah tiga parameter TCP penting:
1.tcp_keepalive_time
Parameter tcp_keepalive_time mentakrifkan selang masa antara menghantar mesej keep-alive. Jika nod dalam rangkaian menjadi tidak bertindak balas, mekanisme keepalive cuba untuk mewujudkan semula sambungan.
Nilai lalai ialah 7200 saat (iaitu 2 jam)
2.tcp_keepalive_intvl
Parameter tcp_keepalive_intvl mentakrifkan selang percubaan semula selepas menghantar mesej keep-alive.
Nilai lalai ialah 75 saat
3.tcp_keepalive_probes
tcp_keepalive_probes mentakrifkan bilangan probe TCP yang dilakukan sebelum menghantar mesej keepalive.
Nilai lalai ialah 9 kali
Parameter ini boleh ditukar untuk meningkatkan prestasi TCP. Berikut ialah arahan untuk menukar tiga parameter di atas:
echo 600 >/proc/sys/net/ipv4/tcp_keepalive_time echo 30 >/proc/sys/net/ipv4/tcp_keepalive_intvl echo 5 >/proc/sys/net/ipv4/tcp_keepalive_probes
3. Dayakan pilihan penskalaan tetingkap TCP
Penskalaan Tetingkap TCP (Penskalaan Tetingkap TCP) ialah pilihan untuk melanjutkan pengepala TCP untuk menyokong rangkaian berkelajuan tinggi. Secara lalai, kernel Linux secara automatik mendayakan pilihan sambungan tetingkap TCP, tetapi jika anda menggunakan versi kernel yang lebih lama, anda mungkin perlu mendayakan pilihan ini.
Berikut ialah arahan untuk membolehkan pilihan sambungan tetingkap TCP:
echo 1 >/proc/sys/net/ipv4/tcp_window_scaling
4 Gunakan ifconfig untuk melaraskan nilai MTU dan MRU
MTU (Unit Penghantaran Maksimum) ialah saiz maksimum yang boleh dihantar oleh paket, manakala. MRU (Unit Terima Maksimum) ialah saiz maksimum yang boleh diterima oleh satu paket Saiz paket maksimum yang boleh diterima oleh penghujung.
Menukar nilai MTU dan MRU boleh meningkatkan prestasi rangkaian sistem anda. Kita boleh menggunakan arahan ifconfig untuk menukar nilai ini. Berikut adalah arahan untuk menukar MTU dan MRU:
ifconfig eth0 mtu 9000 ifconfig eth0 mru 9000
5. Gunakan iperf3 untuk menguji prestasi rangkaian
iperf3 ialah pengesanan trafik dan alat ujian kualiti perkhidmatan rangkaian. Ia membantu pentadbir mengukur prestasi rangkaian sistem dan menyemak kesesakan rangkaian. Gunakan iperf3 untuk menemui kesesakan rangkaian dengan cepat untuk penalaan.
Pertama, mulakan iperf3 di bahagian pelayan. Perintah berikut boleh memulakan pelayan TCP mendengar pada port lalai:
iperf3 -s
Kemudian, jalankan iperf3 pada klien untuk menguji kelajuan penyiaran maklumat rangkaian. Untuk ujian TCP, anda boleh menjalankan arahan berikut:
iperf3 -c <server-ip>
6. Gunakan arahan netstat untuk memantau prestasi rangkaian
Arahan netstat ialah alat baris arahan yang biasa digunakan yang boleh digunakan untuk menyemak sambungan rangkaian dan prestasi penghantaran dalam sistem Linux .
Anda boleh menggunakan arahan berikut untuk menyemak nombor dan status sambungan TCP dalam sistem Linux anda:
netstat -nat | grep -i "tcp.*established"
Arahan ini akan mengembalikan bilangan sambungan TCP yang sedia ada. Semakin tinggi bilangan sambungan yang diwujudkan, semakin rendah prestasi TCP/IP sistem.
7. Gunakan sysctl untuk melihat parameter TCP/IP
sysctl ialah utiliti CLI yang menguruskan parameter kernel. Anda boleh menggunakannya untuk melihat dan menukar parameter TCP/IP.
Berikut ialah arahan untuk melihat parameter TCP/IP:
sysctl -a | grep tcp
Kita boleh menukar parameter ini mengikut keperluan kita dengan menggunakan arahan berikut:
sysctl -w <parameter=value>
Sebagai contoh, arahan berikut akan menukar saiz mampatan memori maksimum bagi Tindanan TCP:
sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000'
eight , Gunakan tcpdump untuk memantau trafik rangkaian
tcpdump ialah utiliti baris arahan yang menangkap paket data rangkaian. Anda boleh menggunakannya untuk memantau trafik rangkaian untuk mencari kerosakan atau kesesakan rangkaian.
Berikut ialah arahan untuk menangkap trafik TCP masuk dan keluar menggunakan arahan tcpdump:
tcpdump -i eth0 -vv tcp
Anda boleh mengubah hala outputnya ke fail dan kemudian melihatnya menggunakan wireshark:
tcpdump -i eth0 -vv tcp -w <filename> wireshark <filename>
Kesimpulan
Dengan mengkonfigurasi parameter TCP/IP dan rangkaian dengan betul, prestasi rangkaian sistem Linux anda boleh dipertingkatkan. Melalui alat CLI dan kernel yang disediakan dalam artikel ini, pentadbir boleh memahami dengan lebih baik prestasi rangkaian sistem dan mengoptimumkannya. Artikel ini menyediakan contoh kod untuk membantu pentadbir lebih memahami cara mengoptimumkan prestasi TCP/IP dan prestasi rangkaian.
Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi TCP/IP dan prestasi rangkaian sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!