Saya melihat beberapa perilaku membingungkan mengenai antarmuka berikat di Linux dan saya ingin membuang situasi di sana dengan harapan seseorang dapat menjernihkannya untuk saya.
Saya memiliki dua server: Server 1 (S1) memiliki koneksi ethernet 4x 1Gbit; Server 2 (S2) memiliki koneksi ethernet 2x 1Gbit. Kedua server menjalankan Ubuntu 12.04, meskipun dengan kernel 3.11.0-15 (dari paket linux-generic lts-saucy).
Kedua server memiliki semua antarmuka jaringan masing-masing yang dibundel ke dalam antarmuka bond0 tunggal dengan konfigurasi berikut (dalam /etc/network/interfaces
):
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Antara server adalah beberapa switch HP yang (saya pikir) dikonfigurasi dengan benar untuk LACP pada port yang dimaksud.
Sekarang, tautannya berfungsi - lalu lintas jaringan mengalir dengan gembira ke dan dari kedua mesin. Dan semua antarmuka masing-masing sedang digunakan, jadi itu tidak seperti agregasi gagal total. Namun, saya membutuhkan bandwidth sebanyak mungkin antara kedua server ini, dan saya tidak mendapatkan ~ 2Gbit / s yang saya harapkan.
Dalam pengujian saya, saya dapat mengamati bahwa setiap server tampaknya mengalokasikan setiap koneksi TCP (misalnya iperf, scp, nfs, apa pun) ke antarmuka slave tunggal. Pada dasarnya semuanya tampak dibatasi maksimal 1 gigabit.
Dengan pengaturan bond-xmit-hash-policy layer3+4
, saya dapat menggunakan iperf -c S1 -P2
untuk mengirim pada dua antarmuka slave, tetapi di sisi server, penerimaan masih hanya terjadi pada satu antarmuka slave dan karenanya total throughput dibatasi pada 1Gbit / s, yaitu klien menunjukkan ~ 40-50MB / s pada dua antarmuka slave, server menunjukkan ~ 100MB / s pada satu antarmuka slave. Tanpa pengaturan bond-xmit-hash-policy
pengiriman juga terbatas pada satu antarmuka slave.
Saya mendapat kesan bahwa LACP harus memungkinkan bundling koneksi semacam ini, memungkinkan, misalnya, transfer scp tunggal untuk menggunakan semua antarmuka yang tersedia antara dua host.
Apakah pemahaman saya tentang LACP salah? Atau sudahkah saya melewatkan beberapa opsi konfigurasi di suatu tempat? Setiap saran atau petunjuk untuk investigasi akan sangat dihargai!
bond-xmit-hash-policy layer3+4
mengatur load balancing dari server sumber Anda ke sakelar. Itu tidak mengatur algoritma load balancing dari Anda beralih ke server kedua. Itu hampir pasti masih layer-2 atau layer-3 seimbang, yaitu tidak sama sekali.sumber
Nah, pertama, ketika Anda menggunakan driver tim, itu akan membuat beberapa overhead, dan menurunkan throughput maks yang diharapkan, yaitu ~ 940 MB / s pada adaptor 1GB, ~ 10%.
Saya tidak yakin jenis adaptor apa yang Anda miliki, tetapi jika Anda menggunakan driver in-box, pengaturan mungkin tidak ideal untuk throughput maks. Anda dapat mempertimbangkan untuk menambahkan antrian, hingga 4, karena satu antrian pada adaptor mungkin tidak dapat mencapai kecepatan kawat.
Pertimbangan lain, adalah bahwa satu utas iperf mungkin tidak akan mendapatkan kecepatan tertinggi. Untuk 1GB, 2-6 utas mungkin lebih ideal, Anda dapat menggunakan skrip bash sederhana untuk meluncurkan beberapa utas sekaligus.
Untuk Intel NIC, tetapi RSS dan Hardware RSC dapat memengaruhi throughput, di Broadcom pastikan TOE berfungsi.
Namun, langkah pertama adalah menghapus LAG dan mencoba menguji 1 port traffic pada setiap sistem untuk melihat berapa throughput yang didapat, lakukan ini dengan semua port, lalu coba 2. LACP adalah binatang yang berubah-ubah untuk diatur benar, dan saya belum pernah mencoba memasangnya di sakelar HP, hanya Force10 (pra-Dell).
Juga, mengapa ada saklar pasangan?
sumber
--parallel
parameter yang mengontrol jumlah aliran klien paralel untuk dijalankan