Depending on your content, that could be a very normal amount of RAM being used so I wouldnt worry about that.
The very first thing to find out is what is using that much CPU, so pull up Task Manager on the server, go to Processes then check the button/box at the bottom to show all processes from all users. Click on the CPU column and look for the big offender.
If the offender process is OWSTIMER.EXE then you may have a somewhat complex problem on your hands. There are conditions where SharePoint 2007 will corrupt a workflow in such a way that the workflow grows and grows and grows until it literally consumes every resource it can. If that is the case, you need to delete all unused workflows from the system and see if that fixes it. If not, you will need to work your way through your remaining workflows to try to find the problem.
If the offender is a W3WP.exe then you need to determine if the usage is legitimate by looking at your IIS logs and SharePoint audit data (if enabled) - Is your site really getting hit hard? This could be an issue since you have such a small configuration. If you are seeing only a few page hits but still max CPU then the first place to look is at any custom/third party code. Custom code runs in that process and could easily cause this condition.
If you are seeing a lot of hits and it looks like the CPU utilization is legitimate then you have a few options to pursue (simplest to hardest)
- Enable Blob Caching
- Enable Page Output Caching (not applicable to collaboration sites)
- Add hardware to your server. If this is a Virtual Machine then shut it down and make more cores available to the VM. If it is physical server then you will need to look into what CPU upgrade options are available.
- Add a server to your farm and load balance the two. This is not terribly difficult to do but the complexity will arise on the load balancing side, depending on how your company is configured.
One last thing to be aware of is that if your site has a lot of content and you have search configured to index the site regularly, it is possible that the search crawler itself is what is beating your site up. To check this, go to Central Admin - Shared Services Provider - Search Administration and then look at the duration of the crawls.