GNU/Linux >> Belajar Linux >  >> Linux

Mengapa router perangkat keras bekerja lebih baik daripada router Linux dengan spesifikasi yang lebih baik (RAM &CPU)?

Solusi 1:

ASIC.

Alih-alih menggunakan CPU tujuan umum dan perangkat lunak khusus tugas, Anda dapat melewati perangkat lunak dan membuat silikon menangani tugas secara langsung.

Perangkat keras jaringan berkinerja tinggi menggunakan ASIC alih-alih perangkat lunak untuk tugas komputasi yang berat (tetapi relatif sederhana secara logis) seperti membandingkan alamat IP dengan tabel perutean internet yang sangat besar, memeriksa tabel CAM untuk keputusan peralihan, atau memeriksa paket terhadap ACL . Hal ini membuat perbedaan besar dalam kecepatan operasi yang sensitif terhadap waktu tersebut, memberikan keuntungan yang signifikan dibandingkan CPU untuk tujuan umum.

Solusi 2:

Perute khusus kelas atas dapat mengungguli PC dengan CPU yang lebih cepat dan lebih banyak RAM karena dapat melakukan lebih banyak perutean di perangkat keras.

Itu alasan yang sama switch Ethernet Gigabit $60 dapat mengungguli PC $2.000 dengan 4 kartu GigE dua port yang berfungsi sebagai switch Ethernet. Sakelar dibangun dari bawah ke atas untuk menjadi sakelar.

Solusi 3:

"Selain iOS" ?

IOS membuat hampir semua perbedaan. CentOS adalah sistem operasi untuk keperluan umum. Ini dirancang untuk bekerja cukup baik di bawah rentang skenario yang sangat luas, menggunakan beragam konfigurasi perangkat keras yang berbeda. IOS di sisi lain sangat disesuaikan untuk menangani hanya jenis beban kerja yang Anda harapkan dari peralatan jaringan, menggunakan jenis perangkat keras yang sangat spesifik yang akan Anda temukan di perlengkapan Cisco.

Tahu tepatnya perangkat keras apa yang Anda programkan akan membawa Anda jauh dalam hal kinerja vs. kompatibilitas.

Solusi 4:

Baik perangkat lunak dan perangkat keras memiliki sesuatu untuk dikatakan. Saya memiliki perbandingan antara Intel dan TP-Link NIC (yang menggunakan chip Realtek pada intinya) pada perangkat keras server generik, serta perangkat lunak tujuan umum dan tujuan umum dalam perutean.

Di sisi perangkat keras, jika ASIC di papan dapat melakukan beberapa penanganan lalu lintas IP, beban prosesor dapat lebih rendah dan dengan demikian lebih cepat. Saya perhatikan dua chip INtel NIC onboard berkomunikasi langsung dengan DMA, melewati CPU utama dalam menangani penerusan paket; sementara itu chip Realtek menginterupsi setiap kali sebuah paket tiba.

Di sisi perangkat lunak, jika perangkat lunak dirancang untuk digunakan dalam perutean, dapat dibuat lebih efisien. Saya telah menggunakan pfSense+PF (FreeBSD yang dimodifikasi yang dimaksudkan untuk digunakan sebagai router) dan Ubuntu 12.04+iptables tujuan umum sebagai perangkat lunak perutean dan yang pertama dengan jelas mengalihkan lalu lintas jauh lebih cepat. (Ubuntu 14.04 sekarang hampir sama cepatnya, berkat nftables baru di kernel Linux 3.13.)

Namun router khusus memang memiliki satu kelemahan utama:ia tidak dapat melakukan banyak hal selain mengalihkan lalu lintas, dan tidak dapat divirtualisasi. Router tepi saya saat ini adalah mesin virtual di dalam kluster ESXi saya yang menjalankan Ubuntu 14.04, dan juga berfungsi sebagai sistem deteksi intrusi dan penyeimbang beban.

Solusi 5:

AFAIK, itu adalah overhead dari sistem operasi tujuan umum; terlepas dari seberapa cepat koneksi Anda, paket ditangani berdasarkan paket demi paket dalam konteks kernel, meningkatkan latensi dan tekanan pada sistem. Saya yakin itu sudah dijelaskan di Jawaban lain lebih baik dari yang bisa saya lakukan.

Karena itu, ada teknologi "ish" baru yang menjanjikan yang semakin populer dan layak yang mungkin menciptakan pesaing yang lebih tangguh dari sistem Linux dalam hal ini dan juga dalam hal lainnya; yaitu InfiniBand

Lihatlah Q&A berikut di StackOverflow:Bagaimana TCP Kernel-bypass Diimplementasikan

Bacaan Lebih Lanjut:

  • Tutorial di CCGrid ’11:Infiniband dan Ethernet 10-Gigabit untuk Dummies
  • InfiniBand dan Linux dalam Artikel LinuxJournal
  • Akses ke InfiniBand dari Linux - Intel DeveloperZone
  • Proyek Sumber Terbuka InfiniBand

Linux
  1. Mengapa Printf Lebih Baik Dari Echo?

  2. Mengapa VPS Linux merupakan pilihan yang lebih baik daripada VPS Windows

  3. Mengapa rand() mengulang angka jauh lebih sering di Linux daripada Mac?

  1. Mengapa programmer menyukai kemasan Linux

  2. Mengapa sistem Linux saya gagap kecuali saya terus-menerus menjatuhkan cache?

  3. Mengapa nama host saya muncul dengan alamat 127.0.1.1 daripada 127.0.0.1 di /etc/hosts?

  1. Mengapa saya tetap menggunakan xterm

  2. Mengelola perangkat keras Anda yang terpasang di Linux dengan systemd-udevd

  3. Mengapa saya jatuh cinta dengan Antergos Linux