Reply

Reply to: Performance degradation in different setups whit PerfTest

#13557
Vadim Smirnov
Keymaster

PerfTest, being an outdated example, is not recommended for current use. The post you’re referring to briefly explains how using multiple threads in its architecture might lead to reduced throughput. In essence, improper use of multiple threads can cause TCP packet reordering, which in turn can degrade bandwidth.

To see a modern multi-threaded approach in action, take a look at the queued_packet_filter C++ class in ProxiFyre project source code. This model uses one thread for packet reading, another for processing, and additional threads to inject the processed packets throughout the network stack, both upstream and downstream. Such a framework is conducive to developing robust filtering solutions, even for high-capacity 10 Gigabit networks. Worth noting that I’ve also used this C++ class in the WireSock VPN Client.