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 iperf
proses server yang berjalan pada host yang berbeda, juga Debian Lenny. Server tidak aktif, pengujian diulang beberapa kali untuk mengkonfirmasi hasil.
Sementara pengujian dengan iperf
2008R2 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 -w
parameter untuk iperf
.
Saya mencoba menggunakan netsh
autotuining
untuk disabled
, experimental
, normal
dan highlyrestricted
- tidak ada perubahan. Mengubah congestionprovider
tidak melakukan apa-apa, sama seperti rss
dan 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 65536
Standar 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?
sumber
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.
sumber
MTU? http://networking.nitecruzr.net/2007/11/setting-mtu-in-windows-vista.html
sumber
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
sumber
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.
sumber