The 32-bit PAE kernel will not solve this problem because the problem is related to fragmentation of vmalloc space allocation. On x86-64, the vmalloc space is very large (much larger than the physical size of the RAM), so you will not find yourself in a situation where it is fragmented enough for distribution failures to occur. However, in a 32-bit space, vmalloc is much smaller - a hundred MB. Moving to PAE does not make this virtual hosting space anymore.
The workaround for your problem, if you want to stay in the 32-bit version, is to change the kernel so that iptables allocates vmalloc from the preallocated space, thus avoiding fragmentation caused by other callers for vmalloc (although there is no guarantees that this will solve your problem perfectly, since it depends on how iptables allocates memory in relation to what you are doing with it, which is unknown in this area of ββquestions).
source share