WebFaction
Community site: login faq

Hi there,

My site was occasionally hitting the MySQL max concurrent connections limit. So during the past few months I've been working on configuring the caching backend for my Drupal 6 site to sustain more concurrent users. I'm currently using a combination of Redis, APC, and Filecache with the Drupal Cache Backport module. However, I recently did some performance testing, and got very strange results.

I used both Apache Benchmark and Siege to load test my site. After scores of tests with all sorts of combinations of the above mentioned caching mechanisms, I have confirmed that my site consistently sustains more concurrent connections at a higher transfer speed using the default Drupal database caching mechanism than with all the other advanced caching technologies that are supposed to take the load off the database. With the caches fully warmed with hundreds of MB of cached data, I ran both Apache Benchmark and Siege. In both cases, they showed a significant number of failed requests, and I hit the MySQL max connections limit. When completely disabling my cache setup and reverting to standard Drupal database caching, I consistently got 100% success with Apache Benchmark and Siege, without hitting the max connections limit, and transfer speed was better as well.

Any idea why this is happening? Could it be that the additional overhead of the cache engine processes and possible performance bottlenecks on the shared Webfaction environment outweighs the benefits of the caching? Is there any other way to test what going wrong?

Thanks a lot!

asked 04 Feb '13, 11:32

sb56637
13813
accept rate: 0%

edited 04 Feb '13, 11:45


You would have to measure and benchmark each individual piece of the process, likely by adding some kind of verbosity to your code. There is no general process we could provide which would be used to test this as your particular set up is highly customized. It is possible that it is just to much overhead or that cgroups on the shared environment is throttling something(if you are on a 64bit server, it has cgropus, cgroups throttles CPU per-user), but we would have no way of saying that is the case without some kind of benchmark or timestamps in your code measuring it.

permanent link

answered 04 Feb '13, 17:20

johns
5.4k312
accept rate: 23%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×28
×12
×9
×8

question asked: 04 Feb '13, 11:32

question was seen: 2,856 times

last updated: 04 Feb '13, 17:20

WEBFACTION
REACH US
SUPPORT
AFFILIATE PROGRAM
LEGAL
© COPYRIGHT 2003-2020 SWARMA LIMITED - WEBFACTION IS A SERVICE OF SWARMA LIMITED
REGISTERED IN ENGLAND AND WALES 5729350 - VAT REGISTRATION NUMBER 877397162
5TH FLOOR, THE OLD VINYL FACTORY, HAYES, UB3 1HA, UNITED KINGDOM