On 23.07.2010 15:43, Eric Dumazet wrote: > extension: add xt_cpu match > > Kernel 2.6.36 supports xt_cpu match > > In some situations a CPU match permits a better spreading of > connections, or select targets only for a given cpu. > > With Remote Packet Steering or multiqueue NIC and appropriate IRQ > affinities, we can distribute trafic on available cpus, per session. > (all RX packets for a given flow are handled by a given cpu) > > Some legacy applications being not SMP friendly, one way to scale a > server is to run multiple copies of them. > > Instead of randomly choosing an instance, we can use the cpu number as a > key so that softirq handler for a whole instance is running on a single > cpu, maximizing cache effects in TCP/UDP stacks. > > Using NAT for example, a four ways machine might run four copies of > server application, using a separate listening port for each instance, > but still presenting an unique external port : > > iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 \ > -j REDIRECT --to-port 8080 > > iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 \ > -j REDIRECT --to-port 8081 > > iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 2 \ > -j REDIRECT --to-port 8082 > > iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 3 \ > -j REDIRECT --to-port 8083 > Applied to the iptables-next branch, thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html