Performa dalam Adaptor Jaringan

Selalu ada tradeoff dalam memutuskan fungsi perangkat keras mana yang akan diterapkan pada adaptor jaringan. Menjadi semakin penting untuk mempertimbangkan menambahkan fitur pembongkaran tugas yang memungkinkan moderasi interupsi, penyetelan dinamis pada perangkat keras, meningkatkan penggunaan bus PCI, dan mendukung Jumbo Frames. Ini sangat penting untuk adaptor jaringan kelas atas yang akan digunakan dalam konfigurasi yang membutuhkan kinerja terbaik.

Mendukung tcp dan IP checksum offload

Untuk lalu lintas jaringan yang paling umum, pembongkaran perhitungan checksum ke perangkat keras adaptor jaringan menawarkan keunggulan kinerja yang signifikan dengan mengurangi jumlah siklus CPU yang diperlukan per byte. Perhitungan checksum adalah fungsi paling mahal dalam tumpukan jaringan karena dua alasan:

  • Ini berkontribusi pada panjang jalur yang panjang.
  • Ini menyebabkan efek churning cache (biasanya pada pengirim).

Offloading perhitungan checksum ke pengirim meningkatkan kinerja sistem secara keseluruhan dengan mengurangi beban pada CPU host dan meningkatkan efektivitas cache.

Di Windows Performance Lab, kami telah mengukur peningkatan throughput TCP sebesar 19% ketika checksum diturunkan selama beban kerja intensif jaringan. Analisis peningkatan ini menunjukkan bahwa 11% dari total peningkatan disebabkan oleh pengurangan panjang jalur, dan 8% disebabkan oleh peningkatan efektivitas cache.

Offloading checksum pada penerima memiliki keuntungan yang sama seperti offloading checksum pada pengirim. Peningkatan manfaat dapat dilihat pada sistem yang bertindak sebagai klien dan server, seperti server proxy soket. Pada sistem di mana CPU belum tentu sibuk, seperti sistem klien, manfaat offloading checksum dapat dilihat pada waktu respons jaringan yang lebih baik, daripada dalam throughput yang jauh lebih baik.

Mendukung pengiriman besar offload (LSO)

Windows menawarkan kemampuan adaptor / driver jaringan untuk mengiklankan Ukuran Segmen Maksimum (MSS) yang lebih besar daripada MTU ke TCP hingga 64K. Hal ini memungkinkan TCP untuk mengalokasikan buffer hingga 64K ke driver, yang membagi buffer besar menjadi paket yang sesuai dalam jaringan MTU.

Pekerjaan segmentasi TCP dilakukan oleh adaptor jaringan / perangkat keras driver, bukan CPU host. Hal ini menghasilkan peningkatan kinerja yang signifikan jika CPU adaptor jaringan mampu menangani pekerjaan tambahan.

Untuk banyak adaptor jaringan yang diuji, ada sedikit perbaikan yang terlihat untuk aktivitas jaringan murni ketika CPU host lebih kuat daripada perangkat keras adaptor jaringan. Namun, untuk beban kerja bisnis yang khas, peningkatan kinerja sistem secara keseluruhan hingga 9% dari throughput telah diukur, karena CPU host menggunakan sebagian besar siklusnya untuk melakukan transaksi. Dalam kasus ini, offloading segmentasi TCP ke perangkat keras membebaskan CPU host dari beban segmentasi, yang memungkinkan siklus ekstra untuk melakukan lebih banyak transaksi.

Mendukung keamanan IP (IPSec) offload

Windows menawarkan kemampuan untuk membongkar pekerjaan enkripsi IPSec ke perangkat keras adaptor jaringan. Enkripsi, terutama 3 DES (juga dikenal sebagai triple DES), memiliki rasio siklus / byte yang sangat tinggi. Oleh karena itu, tidak mengherankan bahwa membongkar IPSec ke perangkat keras adaptor jaringan mengukur peningkatan kinerja 30% dalam tes Internet dan VPN yang aman.

Meningkatkan moderasi interupsi

Adaptor jaringan sederhana menghasilkan interupsi perangkat keras pada host pada saat kedatangan paket atau untuk menyelesaikan sinyal permintaan pengiriman paket. Latensi interupsi dan efek pengadukan cache yang dihasilkan menambah overhead ke kinerja jaringan secara keseluruhan. Dalam banyak skenario (misalnya, penggunaan sistem yang berat atau lalu lintas jaringan yang berat), yang terbaik adalah mengurangi biaya interupsi perangkat keras dengan memproses beberapa paket untuk setiap interupsi.

Dengan beban kerja jaringan yang berat, peningkatan kinerja throughput hingga 9% telah diukur melalui beban kerja intensif jaringan. Namun, menyetel parameter Moderasi Interupsi hanya untuk peningkatan throughput dapat mengakibatkan hit kinerja pada waktu respons. Untuk mempertahankan pengaturan optimal dan mengakomodasi beban kerja yang berbeda, yang terbaik adalah memungkinkan parameter yang disesuaikan secara dinamis seperti yang dijelaskan dalam Penyetelan Otomatis nanti di artikel ini.

Menggunakan bus PCI secara efisien

Salah satu faktor terpenting dalam kinerja perangkat keras adaptor jaringan adalah seberapa efisien ia menggunakan bus PCI. Selanjutnya, kinerja DMA adaptor jaringan memengaruhi kinerja semua kartu PCI yang berada di bus PCI yang sama. Panduan berikut harus dipertimbangkan saat mengoptimalkan penggunaan PCI:

  • Sederhanakan transfer DMA dengan menggabungkan halaman target jika sesuai.

  • Kurangi overhead protokol PCI dengan melakukan DMA dalam potongan besar (setidaknya 256 byte). Jika memungkinkan, waktu aliran data sehingga seluruh paket ditransfer dalam satu transaksi PCI. Namun, pertimbangkan bagaimana transfer harus dilakukan. Misalnya, jangan menunggu semua data tiba sebelum memulai transfer, karena menunggu akan meningkatkan latensi dan mengkonsumsi ruang penyangga tambahan.

  • Lebih baik untuk pad transfer paket DMA dengan byte tambahan, daripada memerlukan transfer tambahan singkat untuk "membersihkan" dengan mentransfer beberapa byte terakhir dari paket.

  • Gunakan Memory Read, Memory Read Line, dan Memory Read Beberapa transaksi seperti yang direkomendasikan oleh spesifikasi PCI.

  • Perangkat keras antarmuka bus adaptor jaringan harus mendeteksi batasan dalam pengontrol memori host dan menyesuaikan perilaku yang sesuai. Misalnya, perangkat keras antarmuka bus adaptor jaringan harus mendeteksi batasan pra-pengambilan pengontrol memori pada Pembacaan Memori DMA dan menunggu beberapa saat sebelum mencoba transaksi lagi. Perangkat keras harus mendeteksi percobaan ulang yang berlebihan pada bagian adaptor jaringan dan meningkatkan waktu sebelum percobaan ulang pertama pada transaksi di masa mendatang saat terputus oleh host. Tidak ada gunanya terus mengirimkan transaksi ke pengontrol memori ketika Anda yakin bahwa itu masih sibuk mengambil set data berurutan berikutnya.

  • Minimalkan penyisipan status tunggu, terutama selama transfer data. Lebih baik melepaskan bus dan membiarkan adaptor PCI lain menggunakan bus menyelesaikan beberapa pekerjaan jika lebih dari satu atau dua status tunggu akan dimasukkan.

  • Gunakan Memory Mapped I/O, bukan Programmed I/O. Hal ini juga berlaku untuk pengemudi.

Mendukung bingkai jumbo

Mendukung Unit Transmisi Maksimum (MOU) yang lebih besar dan dengan demikian ukuran bingkai yang lebih besar, khususnya Jumbo Frames, akan mengurangi overhead tumpukan jaringan yang dikeluarkan per byte. Peningkatan throughput TCP 20% telah diukur ketika MTU diubah dari 1514 menjadi 9000. Juga, pengurangan yang signifikan dari pemanfaatan CPU diperoleh karena semakin sedikit jumlah panggilan dari tumpukan jaringan ke driver jaringan.