Check your logs, application and ULS. Any errors or anomalous behaviour?
Have you checked the DB? Most bottlenecks occur there. Speak to your DBA he should be able to determine any issues.
Use Perfmon to establish a detailed picture of what is happening. There are tons of resources for this just Google it. Once your problem is resolved be proactive and baseline your performance and then check for variance regularly.
Are all 4 servers flat-lining at 100%? Note that spiking to 100% is fine as long as it is infrequent spikes. What is the average CPU usage? High != bad as you don't want your servers to be a wasted resource. Is IIS healthy? Check for app pool recycles.
What about the solutions you are using is there a higher usage level? Were they load tested? Do they write out to the ULS logs? If so use ULS log viewer to filter them.
What has changed in your environment? Is there a higher load or a new deployment/solution etc.