- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen Booth
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Its obsolete, throw it out!
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- Z68 motherboards
- iPad or Acer Aspire One?
- IQ
- LG Intello Washing Machine
- Lack of a challenge
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- NBN spends another $12 billion of our tax money on nothing
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Debian 5.06 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu 12.04 beta1 desktop amd64
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Upgrade Ubuntu to Linux Mint 12 LDXE for extra speed
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Text editors
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 Fields are hard to fix
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.14
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal 8
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Cel
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- Form alter to node
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Jdog
- Lightbox2
- Module variable
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Statistics
- Taxonomy
- Token
- Token ex
- Transliteration
- Trigger
- Watch
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Open source development hits another roadblock
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- Things to hate on Web sites
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Crying over spilt code
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
10 ways to improve Drupal performance
Submitted by Peter on Mon, 2010-12-06 10:08
technology:
Drupal performs on some of the worlds most important Web sites. Like all other top sites, the top Drupal based sites have some features tuned for extra performance. You can tune your own site the same way.
An untuned site will require bigger, more expensive, hosting accounts before a tuned site. You definitely save money by tuning your Web site.
Some Web site tuning techniques have nothing to do with Drupal and apply to most Web sites. Others are specific to the type of Web hosting account you use. Some are related to the selection of modules. Some are simple Drupal administration settings. Lets start with the simple Drupal administration settings.
Drupal administration settings
Log in to your Web site as the administrator. Select Administer then Site configuration then Performance. You now control several of the top performance improvements.
1. Caching mode
Look under Page cache. Find the Caching mode option. You have the following three options.
- Disabled
- Normal
- Aggressive
Disabled is the setting you use on a test site when developing modules that generate pages. This setting is the slowest and has no use other than testing modules.
Normal is the setting you want switched on for best performance on most sites. Bad performance problems are sometimes caused by a developer switching this setting to disabled for a test then forgetting to switch back to normal use.
Aggressive is rarely used because it is not compatible with commonly used modules. When you use the aggressive setting, some modules switch the setting off for specific pages. Some modules issue a warning about compatibility. When you do not get warnings, you can still have problems with users seeing out of date information on their Web pages. You need a lot of experience and really good testing to use this option.
2. Minimum cache lifetime
While you are on the performance page, look at Minimum cache lifetime. Caching is a messy business. You want to deliver old pages to save the work of generating new pages but you do not want to deliver obsolete information. You make a trade off. Assume your Web site provides fishing forecasts updated a couple of times per day. You could set Minimum cache lifetime to an hour to improve performance. If the same site presents storm warnings, you might shrink the cache lifetime to one minute to make sure pages are never more than a minute out of date.
The default setting of zero is fine for sites where most users log in because logged in users always get fresh pages. Well designed modules remove their content from the cache when the content is out of date and the next visitor automatically gets updated information.
The cache lifetime applies mainly to background updates to content through cron jobs and similar processes. Look at the modules you have installed. If they update using cron and they reset data that is in a cache, read the module documentation for suggestions on cache lifetime settings. If there is nothing mentioned in the documentation, open an issue against the module ask ask.
3. Page compression
If you are not using page compression, you are wasting your visitors time while they wait for Web page downloads. Page compression uses a little bit of processor time to shrink the Web pages and downloads become noticeably faster on everything except the fastest broadband.
Now for the big decision. Drupal can compress your Web pages and your Web server can compress your Web pages. You waste processor time when both programs compress your Web pages. I set all my Web servers to compress all pages so that non Drupal pages are compressed. I then switch off compression in Drupal.
You might not have control of your Web server. cPanel and similar administration options should tell you what your Web server does and give you the option to switch compression on. If you do not have access to the Web server settings, ask your Web hosting supplier to switch on compression in the Web server then switch compression off in Drupal.
As a last resort, leave compression on in Drupal. A good Web server will recognise the compression and not recompress.
4. Block cache
Switch on Block cache to save the overhead of recreating the block content for every page. Some modules frequently update blocks and they will delete individual blocks from the cache as required.
Some block access control modules will disable block caching. If you want to control access to some blocks and not others, you want a result where the uncontrolled blocks are cached and only the controlled blocks are cached. When selecting block access control modules, ask about their effect on the block cache and on uncontrolled blocks.
5. Optimise CSS files
Optimising CSS files creates a big decrease in download times and a small decrease in the load on your server. Switch this option on except when developing and testing a new theme. You rarely create problems by optimising CSS files.
6. Optimise Javascript files
Optimising Javascript files creates a decrease in download times and a small decrease in the load on your server. Switch this option on except when developing and testing a new theme or a new module. Some themes fail when you optimise their Javascript!
Javascript is painful at the best of times. Some people use special techniques to make their Javascript files smaller and those techniques turn Javascript from bad
to really bad
. Optimising those really bad
files can make the result really, like really really bad
.
Optimising Javascript files is a random result because you might not find a problem until someone uses a specific feature on a specific page. On other occasions, all Javascript is destroyed. Test all the Javascript based features of your site before and after optimising the Javascript files.
7. Module administration settings
Some add-on modules have their own caches and cache settings. Check all your add on modules. Views is optional in Drupal 6, is built into Drupal 7, and has a cache option in Drupal 6. Other modules with cache options include Feeds and Panels.
8. Uninstall unused modules
When you add a module to your site directory, the only processing overhead is in the administration section. The instant you select the Enable option for a module, Drupal added the module to a the load in memory and passes the module to every function using Drupal's hook system. If you do not use the module, you can decease the load by disabling the module. If the module creates database tables, you can reduce the database size by uninstalling the module.
9. Choose smaller simpler modules
Some modules provide a lot of functions while others provide just one function or they split a lot of functions into many smaller optional modules. Look for the smallest module to perform the work. When you install a package containing lots of optional modules, switch the optional modules on one at a time until you have only what you need and nothing more.
10. Test one module at a time, one option change at a time
Adding a module and changing a setting for a module can have a big impact on performance. Suddenly changing lots of settings can destroy your Web site performance and create real problems diagnosing the cause. If you change one option then watch the system for a day, you should see any performance problems.
The add-on Devel module can help you see the workload created by a module. You can look at execution times and database overheads before then after the addition of a module or the change of a setting. Do not use the Devel module outside of initial testing because the Devel module adds a big overhead.
See also 10 ways to improve your Web server for better Drupal performance.








