Getgrav.org performance

The load times are great for getgrav.org, would it be possible to share a bit of what you have for a hosting situation to make this possible?

Most of it is the inherent design of Grav and the extensive caching it uses. The key to getting this to work as fast as possible comes down to a few things in order of importance:

1 - It’s critical to run a PHP opcache and usercache. WIth PHP 5.4 APC cache works well, but with PHP 5.5 and 5.6, Zend opcache with APCu user cache is even slightly faster.

2 - SSD Drives can make a big difference. Most things get cached in PHP usercache, but some are stored as files, so SSD drives can make a big impact on performance.

3 - No VMs for optimal performance. VMs are a great way hosting providers can offer flexible “cloud” type environments. These add a layer of processing that will always effect performance. Grav can still be fast on a VM (much faster than wordpress, joomla, etc), but still for optimal performance, native is always going to be faster than a VM.

4 - Fast memory, faster the better. My Macbook Air with 1600mhz memory + SSD + PHP cache runs Grav faster than our web servers, and a Macbook Pro is even faster! I mean crazy fast!

5 - Shared hosting i s of course cheap and readily available, but sharing resources will always slow things down a bit. Again Grav can run very well on a shared server (better than other CMSes) but for ultimate speed, a dedicated server is the way to go.

6 - Multicore processors. Better processors will always help, but not as much as the other points.

For the record getgrav.org runs on a single dedicated server with quad core processors, 16GB of memory and 6G SSD drives. We also run PHP 5.6 with zend opcache and APCu cache. The web servers do run a few other websites but not as many as you would find in a shared-hosting environment.

BTW i’ve added this information to the Documentation:

Performance & Caching

This is great information, thanks a lot for sharing all that and adding it to the dox

I just got it all working on an Nginx server with Digital Ocean, 512mb ram, SSD 1 CPU. Results, 319ms site load time - http://tools.pingdom.com/fpt/#!/ewaxAH/http://peterbui.net

BTW we are also using a CDN with getgrav.org and it helped improve times quite significantly. I created a simple CDN plugin that works a treat and is used on getgrav.org and gantry.org. Getgrav.org is using MaxCDN, and Gantry.org is using KeyCDN.