Check access log and error log files (locations are defined within your "httpd.conf" file) for a lot of activity (newest entries are at the end of the file -- use "tail -f access.log" to watch it live).
If there's no activity showing up in your log files, then it's probably some code that's gotten stuck in an endless loop. Restarting Apache HTTPd will fix that temporarily, but you'll definitely want to review custom code (are you using mod_perl2, CGI Perl, PHP, or something else?), particularly code that was modified/added after you believe this symptom started to appear.
The "server-status" module (which should be included in a default build) may provide some insight as well.
If restarting results in 100% activity again, then you may have some code that's being loaded with Apache HTTPd that's causing the problem, or one of the modules.
Are you doing anything complicated with the configuration? Are you using mod_perl2, CGI Perl, PHP, or something else? Which version of Apache HTTPd are you using? Which Operating System are you running it on (I assumed Unix or Linux since these Operating Systems are better-suited to be web servers and are what most people seem to choose)?