High performance
This group is dedicated to solutions and approaches for high traffic, high performing Drupal sites. As such, it will deal with a lot of information around the rest of a typical Drupal "stack" -- the operating system, web server, database, and PHP tweaks that combine to support the Drupal application.
Senior Web Software Engineer | Switchback
Switchback is hiring!
Looking for Passion in the Workplace?
Us: Young and happening web development company in Ann Arbor, MI. We love user-centered design, open-source technology, and a good bottle of beer. But most of all, we live for building CMS-driven websites that light up our clients' lives. Looking for a long-term relationship built on great communication, stellar software development, and top-notch teamwork.
UC Berkeley interested in Drupal Systems Consulting
Use of Drupal is exploding here at UC Berkeley. The campus doesn't have a good solution for Drupal hosting in place. For the past year it has been my vision to create an environment to do Drupal hosting the right way. I have done a lot of work an have some solutions in place. Now we want to get our plans reviewed reviewed by a LAMP/Drupal systems expert. Does anyone have recommendations for a systems consultant?
More about the advice we are looking for:
Drupal 6 and mysql persistent connections
Hello.
I've created mysq version of database.mysql.inc to correctly work with mysql_pconnect to make available persistent connections.
The main problems were table locks and temporary tables - I've solved it using register_shutdown_function() for script.
Now looks like all working properly.(one project runs using this patched version)
But this patch is for case site using one database only. File is attached.
Cache Router + Memcache: What is shared bins?
I'm using Cacherouter with Memcache and I'm curious what the diffference is between setting up shared to true or shared to false. I've been reading through a lot of documentation and it doesn't make sense to me.
"If you are using memcache as a "shared" bin, it will keep track of each item so that the flush only clears the bin and not the entire process This will allow to do things like use just one large memcache process. If you set "shared" to false, the module assumes that you have assigned one memcache process to each bin. "
Cache by theme or role
Hi,
I'm looking for a way to cache pages based on role or theme.
I have a site set up using mobile tools to switch themes depending on PC/Mobile and then within Mobile adjustments are made for the various carriers.
The site shares the same content in most respects, but has different layout and structure between mobile and PC, and the different mobile carriers output slightly different formatting (it's for Japanese mobiles).
I tried using boost, which was awesome but as my pages use the same urls, it turned the mobile pages into the PC pages.
Which Tables can be converted to Innodb
We were considering conversion of Tables to Innodb. I have read at many places about the side effects and positive things about Converting to Innodb.
Can we have a list of tables here, which we can convert to Innodb and those which should be kept to MyIsam.
The site is am working on, is having high load and high number of pages are delivered.
On an average, 300 nodes are added everyday. (Not much of Commenting activity)
The pages are served via Boost Module to Anonymous users.
The logged in user activity is also low.
What do you think of my Cacherouter + Memcached configuration?
I have 2 front end web servers load balanced with 2 memcached server, 1 with 12 GB total RAM and the other with 4 GB total RAM. Here's the configuration I'm considering to implement.
$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'memcache',
'server' => array('memcache1:11211', 'memcache2:11211'),
'shared' => FALSE,
'prefix' => '',
'static' => FALSE,
'fast_cache' => TRUE,
),
'cache_block' => array(
'engine' => 'memcache',
Cache clear problems
I'm trying to track down an issue with our installation where when the cache is cleared, there is a spike in MySQL queries/connections (around about 170 concurrent), which leaves the site inaccessible for about 5 minutes.
If I take a snapshot of the site and do this on my laptop, I have the same problem (max CPU usage until the processlist is cleared out).
This means that enabling a module means 5 minutes of downtime.
Problem with squid and sessions
We have a setup with a load balancer that points to 2 squid servers listening and serving as cache to 4 machines, and we have it in pairs:
squid1
|-www1
|-www2
squid2
|-www3
|-www4
Each squid is configure to send requests to their requests:
Load balancing web server front ends result in http request failed
Hello everyone, I'm a long time lurker and first time poster. I've run into a small issue with my first drupal load balanced setup. Currently I have a ServerIron XL performing load balancing using a virtual IP. Behind the virtual IP are 2 web servers with drupal installations. What I've noticed is that when loading my Drupal instance into this environment, the status page will alert that the HTTP Request Status failed.
Server load high, web site slow - virtual server
Hi Highperformance Group!
Our organisation started using Drupal about a year ago. We are experiencing very slow page loads on our website - often up to 1 min or more. The server load average correspondingly high - mostly around 4-5, some times up to 30-40 and even more.
Best architecture for news site?
Hey, I'm new to this group and I'm very happy of joining you.
In my company, we're migrating our news sites based on an old Java CMS that we've built some years ago to Drupal.
Our major concern is Drupal's performance, so we're starting to work on an architecture for it. For our old cms we used to generate static pages so the only job for apache was to serve those htmls. I don't know if there a way for Drupal to do this and at the same time have people logged in in the back-end creating nodes. What would be a good architecture for this? We have about 50k unique users a day and growing.
New Mercury Performance Metrics: Logged-in Users
While Mercury has previously demonstrated the raw power of Varnish to radically accelerate the delivery of cached pages with Pressflow, that's only part of the battle for high performance Drupal. Cached pages need to be generated at least once, and logged in users will be bypassing Varnish when making requests. While it's nice to know you're covered for massive traffic spikes, what about baseline load?
Well, we want to answer that question too. Keep in mind that depending on your module/theme stack, your mileage may vary. A lot. Performance tuning a complex Drupal site for logged-in traffic requires sustained diligence at the application level — code profiling, slow query log review, innovative app-specific caches, etc — as well as hardware and system optimization. However, to set some baseline expectations, we used Jacob Singh's greate starter test suite and checked out a Mercury install on a 512MB Slicehost VPS. The results are quite encouraging.
Performance issue with dedicated server
I have a dedicated server:
Intel® Celeron® 1.8 GHz, 1GB RAM
CentOS 5, Apache 2.2.3, MySQL 5, PHP 5.1.6
drupal 6.11 with a handful modules enabled
My site has moderate number of nodes (in the thousands).
The only enabled modules which are significant are "views" and CCK.
Mercury 0.71-Beta Released
Mercury 0.71-Beta has been released with small bugfixes (see https://bugs.launchpad.net/projectmercury for details).
AMI IDs are:
US 32-bit: ami-bd7c9fd4 - chapter3-storage/PANTHEON-pressflow-mercury-0.71-Beta.manifest.xml
US 64-bit: ami-b17c9fd8 - chapter3-storage/PANTHEON-pressflow-mercury64-0.71-Beta.manifest.xml
EU 32-bit: ami-8f2c07fb - chapter3-storage-europe/PANTHEON-pressflow-mercury-0.71-Beta.manifest.xml
EU 64-bit: ami-73230807 - chapter3-storage-europe/PANTHEON-pressflow-mercury64-0.71-Beta.manifest.xml
Varnish config help
I'm working on speeding up our drupal(pressflow) website and would like to get varnish working, but seem to be finding some config difficulties. I'm hoping that someone here might have the expertise.
I have been following the instructions here, and get some predictable results but it is still causing some problems.
I am running a dedicated server (Debian Etch) with Plesk installed. This means that my normal Debian config files are slightly different. Here's what I've done:
Project Mercury Beta!
With great pride, and after six alpha-level releases, I'm announcing of our seventh iteration on the Project Mercury stack, finally baked enough to call "beta".
At this point, we know that many people are using the Mercury EC2 image in production environments, and we've tuned this release conservatively to prevent it from breaking down under heavy load. We've also verified that the stack will work under a resource-constrained VPS (e.g. one with 1/4th the RAM of a small EC2 image), which gives us more confident that this configuration is stable. We also have a kickass logo:

Additional testing of Mercury with 2GB and 512MB RAM
My name is Greg Coit, sysadmin for Chapter 3 and I've been helping with Mercury development and testing.
We wanted a get a quick idea of how hard we could push mercury under more "real world" circumstances, so I combined siege and ab to generate a broad spectrum of hits. ab (short for apache benchmark and part of the apache2-utils package) allows you to generate a very large number of hits on one url, while siege (a perl script which comes in a self-titled debian/ubuntu package) lets you spread the hits across many urls, most of which won't be cached. This mixed-load is a much more nuanced and accurate way of looking at performance than peak throughput on a single url.
Apache+PHP vs Java Server and Quercus
I recently managed to get my apache running smoothly for the most part. But i have a new conundrum. I am starting a side project which will be built on java using a java server such as tomcat or (i believe) resin. I have a friend who knows more about java as my knolege is rather limited who is suggesting this. The java server would be able to serve the php via an app called quercus found here: http://quercus.caucho.com
EC2 Offering "MySQL Cloud"
Today Amazon announced a provided service for hosting MySQL databases in the cloud: Amazon Relational Database Service. It starts at $0.11/hr, plus $0.10 per GB/month of storage and $0.10 per million I/O requests. The real interesting question is how these will perform. The instances come in many flavors:
- Small: 1.7 GB memory, 1 virtual core with 1 ECU. $0.11/hr
- Large: 7.5 GB memory, 2 virtual cores with 2 ECUs each. $0.44/hr
- Extra Large: 15 GB of memory, 4 virtual cores with 2 ECUs each. $0.88/hr
- Double Extra Large: 34 GB of memory, 4 virtual cores with 3,25 ECUs each. $1.55/hr
- Quadruple Extra Large: 68 GB of memory, 8 virtual cores with 3.25 ECUs each. $3.10/hr
That "Quadrupal XL" is pretty big! I'll be investigating this for Pantheon, but anyone else with experience/info, let's figure out how good these things really are!








