I've used a variety of tools for system monitoring during load and performance testing, but one that's impressed me lately is RPM by NewRelic, which profiles Java and Ruby web applications. It's extremely lightweight and generates a lot of useful load and performance data. I used it on a website that used Tomcat as the application server and MySQL on the backend, and RPM was able to point out some database bottlenecks pretty quickly. It's especially good at aggregating data from multiple application servers, which can be a colossal pain to monitor individually.