What kind of speeds are you running? I assume since it's DMZ > LAN, it's either 100Mbps or 1Gbps. The m0n0wall handbook has a chapter on hardware sizing:
http://doc.m0n0.ch/handbook/hardware-sizing.html. It doesn't mention the Soekris 5501, but it does mention the 48xx line being able to get up to around 40Mbps.
If your NICs support it, you may want to see about turning on device polling.
As for finding the processes that are using the most CPU, you can use the exec.php page and run the 'top' command, which will list the top processes along with a bunch of other stats.