Tuning kinerja jaringan Windows 7 untuk LAN

8

Saya ingin menyetel Windows 7 TCP stack untuk kecepatan di lingkungan LAN.

Sedikit info latar belakang: Saya punya Citrix XenServer yang diatur dengan Windows 2008R2, Windows 7 dan Debian Lenny dengan kernel Citrix, mesin-mesin Windows memiliki Tools yang menginstal iperfproses server yang berjalan pada host yang berbeda, juga Debian Lenny. Server tidak aktif, pengujian diulang beberapa kali untuk mengkonfirmasi hasil.

Sementara pengujian dengan iperf2008R2 dapat mencapai sekitar 600-700Mbps tanpa tuning apa tapi saya tidak bisa menemukan panduan atau set parameter yang akan membuat Windows 7 mencapai lebih dari 150Mbps tanpa perubahan ukuran jendela TCP menggunakan -wparameter untuk iperf.

Saya mencoba menggunakan netsh autotuininguntuk disabled, experimental, normaldan highlyrestricted- tidak ada perubahan. Mengubah congestionprovidertidak melakukan apa-apa, sama seperti rssdan chimney.

Mengatur semua pengaturan yang tersedia ke nilai yang sama seperti pada host Windows 2008R2 tidak membantu.

Untuk meringkas:

  • Pengaturan standar Windows 2008R2: 600-700Mbps
  • Debian, pengaturan default: 600Mbps
  • Pengaturan standar Windows 7: 120Mbps
  • iperf -w 65536Standar Windows 7 ,: 400-500Mbps

Sementara 400Mbps yang hilang dalam kinerja saya menyalahkan Realtek NIC jelek di host XenServer (saya bisa melakukan ~ 980Mbps dari laptop saya ke server iperf) itu tidak menjelaskan mengapa Windows 7 tidak dapat mencapai kinerja yang baik tanpa secara manual menyetel ukuran jendela di tingkat aplikasi.

Jadi, bagaimana cara menyempurnakan Windows 7?

Hubert Kario
sumber

Jawaban:

2

Coba aktifkan RSS dan TCP Offload Engine :

netsg int tcp set global rss=enabled
netsh int tcp set global chimney=enabled 
alvosu
sumber
Itu default pada Windows 2008R2, itu tidak membantu.
Hubert Kario
Coba nonaktifkan mereka.
joeqwerty
dinonaktifkan, diaktifkan tanpa perbedaan
Hubert Kario
2

Itu bisa menjadi pengandar jaringan yang berbeda di Windows 2008R2 vs Windows 7. Juga, apakah xenserver selalu menyediakan nic virtual yang sama untuk Windows 2008R2 dan Windows 7? Karena jika berbeda maka driver yang berbeda akan dimuat.

Mungkin ada beberapa perbedaan kinerja.

EDIT: Saya baru ingat bahwa windows 7 secara default memiliki buffer kirim / terima yang sangat kecil. Dalam beberapa aplikasi yang saya kembangkan saya menemukan bahwa di bawah windows 7 itu adalah sesuatu yang menyedihkan seperti 8kB. Di bawah ubuntu linux sekitar 120kB. Anda dapat membaca di suatu tempat bahwa batasannya adalah 64kB. Ini sebenarnya tidak benar untuk versi windows yang lebih baru. Saya telah menemukan itu dapat disetel hingga setinggi 1MB dan lebih. Meskipun sedikit peningkatan kinerja akan diperhatikan saat ini sebesar ini.

Tautan ini menyediakan beberapa parameter penyetelan tcp di registri yang menerapkan sistem secara luas. Ketahuilah bahwa banyak dari opsi itu dapat ditimpa oleh aplikasi itu sendiri.

http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html

Coba tambah ukuran jendela dan kirim / terima buffer. Semoga pengaturan registri di tautan tersebut masih berlaku di windows 7.

Mat
sumber
Lalu mengapa jika saya mengatur jendela TCP yang lebih besar kecepatan meningkat? Dan tidak, XenServer tidak mengubah NIC yang disajikan.
Hubert Kario
Saya hanya membahas bahwa ini mungkin menjadi alasan. Saya seorang pengembang dan kebetulan saya sedang mengembangkan aplikasi yang mendorong banyak data dengan kecepatan mendekati gigabit. Namun, mengembangkan di virtualbox saya menemukan perbedaan kinerja dengan driver nic yang berbeda. Ya, meningkatkan jendela TCP akan meningkatkan throughput karena akan ada lebih sedikit paket ack return. Sudahkah Anda mematikan semua VM lain di Xen untuk memastikan bahwa windows adalah satu-satunya yang menggunakannya?
Matt
Penggunaan jaringan saya yang biasa pada host Xen di bawah 60-90KiB / s. Dan memeriksa pengemudi, memuat yang sama. Sebagai catatan, Xen dan Virtualbox adalah hypervisor yang benar-benar berbeda, satu adalah tipe 1 yang kedua adalah tipe 2. Selain itu, saya telah melihat masalah kinerja yang sama dengan pemasangan bare-metal. Saya terutama menyebutkan virtualisasi untuk menyingkirkan masalah perangkat keras.
Hubert Kario
Saya baru ingat sesuatu. Detail dalam jawaban utama.
Matt
1

TCP Autotuning (yang sudah Anda hilangkan), MTU yang sudah ditangani dan MMCS (penjadwalan kelas Multimedia) biasanya merupakan perbedaan besar. Karena MMCS belum ditangani, coba nonaktifkan.

Pastikan bahwa autoscaling window tcp Anda dinonaktifkan jika Anda berada pada atau di dekat kecepatan LAN.

Instruksi tersedia di sini: http://smallvoid.com/article/winnt-services-mmcss.html

iivel
sumber
Saya tidak yakin apakah saya mengubahnya (karena sudah lebih dari 6 bulan sejak itu) tetapi terlihat menjanjikan, saya akan mencobanya besok.
Hubert Kario
Tidak banyak membantu, membuat kinerja sekitar 10-20% lebih baik.
Hubert Kario
0

Anda seharusnya tidak melihat driver Realtek di dalam Windows sebagai mesin virtual di Citrix XenServer. Jika Anda melakukannya, itu berarti Anda tidak menginstal XenTools. NIC Realtek yang Anda lihat, adalah yang ditiru yang disediakan oleh layanan QEMU di dalam Dom 0 (domain 0). Setelah menginstal OS Windows, sebelum Anda melakukan hal lain, terutama pemasangan aplikasi, Anda harus menginstal XenTools. Selain itu, kecepatan di-hardcode setelah XenTools diinstal (Seperti yang tercantum dalam Panduan Pengguna VM), karena tidak ada batasan kecepatan pada perangkat virtual.

James
sumber
1
dari pertanyaan pembuka: "Realtek NIC di host XenServer "
Hubert Kario