I am currently running Moodle 2.3.2+ (Build: 20120914), PHP 5.3.3, Centos 6.3, and MySQL 5.1.61.
I do not have a big site...only about 100 users and 30 courses. Usually no more than 15 users online at a time. When I first switched to Moodle2.0 and right on up to 2.3.1, my site was noticably slower than what I was used to with Moodle 1.9.x last school year. However, I have now managed to get things tweaked so that performance is comparable to what I get from Moodle 1.9.19 which I still have on the same server.
Typical performance times on page loads for students last year were about half a second with me as admin getting about .8 seconds per page. We experienced numerous page timeouts especially when taking tests. I routinely would only let four students at a time start a test to prevent page timeouts.
This year with Moodle 2.3.2+ typical performance times on any pages for students run less than .3 seconds. Even me as admin load times are mostly around .4 seconds and then about .7 seconds when editing is turned on. Just now while logged in as a student, I am getting .2 seconds for a quiz with 5 random questions to the page with pictures and Nanogong audio. (Of course the audio does not load until your tell it to by clicking the speaker.) I now let students countdown and start test at the same time, trying to get page timeouts. The only time we have managed it, was when my router was having trouble a few weeks ago.
The difference between the earlier slow performance and the much better performance I get now...
2 years ago - Old server 1 - AMD single core cpu at 2.4 GHz with 4GB RAM, a 7200 rpm hard drive on Centos 5.8. No caching other than what was built into Moodle 1.9.x. Loadtest script indicated I could only support about 3 to 5 concurrent users.
Last year - Old server 2 - Intel core 2 duo cpu at 2.4 GHz with 4GB RAM, a 7200 rpm hard drive on Centos 5.8. No caching other than what was built into Moodle 1.9.15. Loadtest script indicated I could support about 10 concurrent users. In July of this year, I put in a 256 GB Solid State Drive. Concurrency jumped to about 19. Tried eAccelerator and then APC. Concurrency jumped to 33. It is fun to watch the test ramp up until it fails when all four cores are running at 100%.
The first week of August, since I had been too ill to play golf lately, I convinced my wife to let me use the money I saved to build a new server - AMD 8 core cpu at 3.6 GHz with 32 GB RAM using a 512 GB Solid State Drive on Centos 6.3. Apache is set up to use deflate and I am using APC for PHP caching. The same load test on my Moodle 1.9.19+ now shows I can handle 55.5 concurrent requests. I am reasonably sure I am once again hardware limited as I can peg 6 cores to 100% and the other two hover around 96%. Granted, I doubt I could actually handle 55 concurrent users in Moodle 2.3.2 but this is more than sufficient for my classes now.
I have been experimenting with the APC cache settings and getting some more improvement because the default memory settings of 32 MB for APC are terrible when it comes to Moodle. After all, Moodle 1.9.19 has about 6300 files and Moodle 2.3.2 has about 13000. Ressetting the cache to empty and then just loading the front page of my Moodle 2.3.2+ will put 499 files in cache and takes up 68.4 MBs. The past month I have been using 256 MB for cache and it tends to fill up in less than an hour or two when students are in class. I am ready to ramp up the memory to 512 and try that for a while.