3

I launched a site based upon Drupal 7.14 with at least 100 simultaneous users accessing the site at all times.

From the Devel module, I see that every page is generating about 200 to 400 Mysql requests.

First question: Is that a lot with 5 customs blocks per page?

With the full caching system for anonymous user, the site is running smoothly.

I had to make two updates. For that, I put the site in maintenance mode, made my modifications and uploading new files, flushed the cache and put the site live again. The first update did not generate any issues. But the second one, my MySQL server crashed due to a huge amount of simultaneous requests.

So how to avoid the flushing of all pages and updating properly JS, CSS and templates files? What's is the correct workflow? Because after the maintenance, if 10 users request a non-cached page, it's more likely that the server won't be able to handle the load.

Does Drupal automatically regenerate the page cache if a JS, CSS or template associated file has been changed? So, is no flushing needed? The page would be correctly regenerated according to the cache configuration?

Here the server specifications:

ProLiant DL360 G5
CPU Intel Xeon 5133 (dual core) 2GHz
RAM 2×512Mb DDR2
  • 1
    400 mysql requests seems like a lot, but it shouldn't be crashing your server with that many users. What are the specifications of the server? you could also consider this: drupal.org/project/flush_page_cache – jdu Nov 1 '12 at 21:28
  • I don't really know about the specification (opaque collaboration with a hosting service...). If 10 users request a non cached page at the same time it'll be 2000-4000 requests, it can then make the server crash, right? Thanks, for the link. – SuperSkunk Nov 1 '12 at 21:36
  • 1
    Tip: The only time we put a site into maintenance mode is when we are moving the database to a different physical server. Even this can be avoided if you setup master/slave and fail over to slave. As long as people are not creating or editing field definitions (creating or editing table's schema in the database) maintenance mode is overkill 99.99% of the time. – mikeytown2 Nov 2 '12 at 20:33
  • @jdu, I added the server specifications. – SuperSkunk Nov 5 '12 at 8:42
1

Drush and command line are for rescue here:

1) To clear cache selectivelly, just run drush cc and drush will provide you with different options to select from, so you can clear everything or just theme registry, js/css, views, pages, etc.

2) To regenerate script use this bash script: http://dropbucket.org/node/241. It reads your sitemap.xml and revisits all pages, warming up cache.

3) Additionally, consider using Drush Entity Cache Loader http://drupal.org/project/drush_ecl, it doesn't generate page cache for you, but warms up content cache, so when authorized user loads the page, nodes and other entities are loaded from cache instead of being generated on the fly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.