mirror of
https://github.com/pavel-odintsov/fastnetmon
synced 2024-11-23 17:32:59 +01:00
1.1 KiB
1.1 KiB
Как обеспечить работу с PF_RING в режиме ZC и обрабатывать до 14 MPPS?
Нужно наложить следующие патчи:
- Включаем REENTRANT_MODE, чтобы можно было выбирать пакеты из нескольких потоков и не крашить PF_RING
-unsigned int num_threads = 1;
+unsigned int num_threads = 8;
- Активируем многопоточную выборку пакетов:
- pfring_loop(pf_ring_descr, parse_packet_pf_ring, (u_char*)NULL, wait_for_packet);
+ boost::thread* my_calc_threads[8];
+
+ for (int number_of_thread=0; number_of_thread<8; number_of_thread++) {
+ my_calc_threads[number_of_thread] = new boost::thread(pfring_loop, pf_ring_descr, parse_packet_pf_ring, (u_char*)NULL, wait_for_packet);
+ }
- Раскомментируем парсер пакетов, так как в режиме ZC он отключен и именно он производит основную нагрузку на систему:
// pfring_parse_pkt((u_char*)p, (struct pfring_pkthdr*)h, 5, 0, 0);