I remember there were high-performance meetups a while ago. I don't see the group so I'm asking LA Drupal. I will be at the meeting tonight if you wish to discuss then.
The site is used world-wide in a shared-hosting environment, but there is little else on the server. It runs Drupal 7 (last updated in December). Sporadically it receives a large number of requests from IP addresses all around the world. Some of the requests are from bots that appear to honor the 'Crawl-delay' of 60 seconds. A (very) few do not.
There are times when load on the server goes way high (>30). There is very little else going on the system. I have just recently developed a script to keep the server alive in these situations (by temporarily blocking IPs, pausing Apache) and am now able to look into why system resources are overly heavily used.
I am wondering what to look for in terms of requests, mis-configured Drupal, etc. to try to determine why the server gets overloaded at a relatively small load.
Server characteristics: 2GB RAM and MySQL has ~400MB. MaxClients: 15, PHP's memory_limit: 128MB. Most of the site is for anonymous users.
Thanks,
Leonard Daly

Comments
Hi performance meetups
Christefano used to run these meetups, recently I think they were combined with something else. You might want to contact Christefano privately.
Paul Chernick
CEO
Chernick Consulting
(310) 569-2517
Thanks for the shoutout,
Thanks for the shoutout, Paul!
If most of the site is for anonymous users then cache it
Varnish will save the pain of the anonymous site traffic. Memcache will speed up your queries/data returns, but Varnish is more valuable for your scenario. PHP opcodeCache will help too, APC if using PHP 5.3 or lower, use PHP's OpCache when using PHP 5.5 or higher.
Chris Charlton, Author & Drupal Community Leader, Enterprise Level Consultant
I teach you how to build Drupal Themes http://tinyurl.com/theme-drupal and provide add-on software at http://xtnd.us
PHP's opcache (which is also
PHP's opcache (which is also in pecl for php 5.2 - 5.4) can be quite aggressive but either opcache or apc would be valuable in lowering the memory footprint of your sites if they are not already there. If there are enabled, it would be worthwhile to ensure there is enough memory for them to fully cache your codebase.
As Chris mentioned, Varnish with help with anonymous site traffic (and static assets). Memcache/redis with help speed up cached content though they do take up RAM so that may not be the most viable option in your scenario.
A combination of nginx with PHP-FPM (or Apache with PHP-FPM though I find that a pain to set up) might actually be a great combination since PHP-FPM would allow you to set a limit on the number of PHP connections you have open (nginx can serve the non-php content) making your server a lot less prone to it spinning out of control.
But these are just suggestions. Some things to figure out would be where the bottle neck really is. Is it at the database layer (some queries are sucking up a ton of memory)? Is it at the web server layer (some combination of needing opcache/changing php/apache config)? Or is it at the application layer (Some rogue module doing incredibly nasty stuff is not uncommon)?
Tools for Investigation
Thank you Paul, Chris, and BTMash.
I am a little hesitant to add more "features" to the server with various caching without understanding what the problem really is. I know that there is a memory issue in the current configuration; but today the server load has been low all day. I am still working on determining if it is a lower than average request rate or some other issue.
Do you have any tools you like to use to investigate performance issues?
Thanks.
Loads
Are you using any SEO tools that scan your website on a regular basis?
I use SEOMOZ or just MOZ now, and on a weekly basis my websites will get an additional 100 to 200 sessions which is the robot checking all the links.
Google scans may do this as well. I will definitely affect performance.
Do you have a development site or test site that is the exact same configuration that you can use to increase the load for testing?
Paul Chernick
CEO
Chernick Consulting
(310) 569-2517
New Relic
I really like New Relic for digging into performance issues. It can help you narrow down the problem to specific queries, pages, etc.
Contact: https://www.hook42.com/contact
Drupal 7 Multilingual Sites: http://www.kristen.org/book
Review of load testing tools
http://blazemeter.com/blog/open-source-load-testing-tools-which-one-shou...
Paul Chernick
CEO
Chernick Consulting
(310) 569-2517
Leonard, another place to ask
Leonard, another place to ask about performance is in the High Performance group at https://groups.drupal.org/high-performance
The High Performance Drupal meetups were recently renamed to EXTREME DRUPAL and include devops, scalability and large scale Drupal, as it's not just about performance. If there's enough interest, we can do another one.
The turnout was surprisingly low last time, which was hard to understand considering we had Mike Carper (a major contributor to performance in Drupal core and the author / maintainer of Boost, Advanced Aggregator, HTTPRL, DB Tuner, etc.), so I back burnered EXTREME DRUPAL for a while.