GNU/Linux >> Belajar Linux >  >> Linux

Kait Netfilter pada sistem multi-core

Masalahnya bukan dari netfilter, adalah cara kernel Anda mengelola interupsi.

Secara default APIC versi lama mengirimkan semua interupsi ke CPU0.

Anda dapat memeriksa apakah ini masalah Anda dengan:

cat /proc/interrupts

Anda dapat melihat apakah interupsi NIC (dan ingat bahwa netfilter hook dijalankan melalui RX atau TX SoftIRQ) ditangani oleh satu Core.

Di versi kernel yang lebih baru, ada opsi kompilasi (CONFIG_HOTPLUG_CPU), yang menyeimbangkan IRQ dengan inti yang ada.

Atau jika Anda tidak dapat memperbarui versi atau mengkompilasi ulang kernel, Anda dapat memperbarui afinitas SMP (dengan topeng yang menangani lebih dari CPUid) untuk mencoba menyeimbangkan antara Core yang berbeda. Atau buka ACPI dan konfigurasi yang tepat (Di sini saya tidak dapat membantu lebih lanjut).

Di sini Anda dapat menemukan semua tentang hal ini (afinitas SMP dan penanganan IRQ yang tepat)


Masalahnya mungkin NIC Anda hanya memiliki satu interupsi. Beberapa NICS yang lebih baru memiliki beberapa interupsi (disebut NIC multiantrean) yang memungkinkan beban tersebar di antara banyak utas.

Untuk NIC antrean tunggal, ada beberapa fitur perangkat lunak yang tersedia di kernel baru yang dapat Anda konfigurasikan untuk menyebarkan beban. Lihat mis. http://www.spinics.net/lists/linux-doc/msg02975.html untuk ikhtisar tentang apa yang tersedia.


Linux
  1. Mengembalikan nilai x =os.system(..)

  2. Mengubah waktu untuk sementara

  3. Apa itu namespace UTS?

  1. Log Sistem NG

  2. Apakah Thundering Herd Problem ada lagi di Linux?

  3. Interupsi di Beaglebone

  1. Cara Memperbaiki Masalah Program Sistem yang Terdeteksi Di Ubuntu

  2. Pengantar Sistem File Linux

  3. Sistem file lintas platform