how to make Ghost CMS faster ?

#1
Hi;

NOTE: Today, I'll install Ghost on NGINX on top of the same config to compare but

Ghost claim to be 6 time faster than WordPress and OLS claim to make Ghost 4 times faster than NGINX.
While on the same machine with WordPress; GTMetrix tell me the website answer under a 1sec.
So I was obviously expecting Ghost to take, at least, the same time to render the site, but instead, even after few tweaks in the theme, I hardly have a respond under 3sec.

More about the config:
- Vultr High Frequency 1GB with Intel Skylake 3.8 Ghz
- Ubuntu 20.04LTS kernel 5.4.0-71-generic
- Percona 8, instead of MySQL, so I do with WordPress
- OpenLiteSpeed 1.6.21-2+focal (I followed this guide: https://openlitespeed.org/kb/ghost-openlitespeed/)
- Nodejs: 14.17 | NPM: 7.13 | Ghost-CLI: 1.17.2 | Ghost: 4.4.0
- I disabled PHP, Ruby, Python in OLS and deleted the EXAMPLE to liberate few bites of RAM
- I tried with Cloudflare to cache everything "mydomain.tld/*/images/*"

PS: I tried with a Vultr High Frequency 2GB with Intel Skylake 3.8 Ghz and I receive the same score, also the total amount of RAM used remain the same, which is 530MB (mysql: 128MB | ols: 54MB | lsnode: 90MB)

So how I could make Ghost faster ?
It is possible to use LSCache with Ghost ?
if yes how I could do that ?
--> see Update2
What's about QUIC ?

UPDATE1: related to LSCache, I found this tutorial on how to cache Ghost with NGINX, it would be nice to have something similar for LSCache
https://stanislas.blog/2019/08/ghost-nginx-cache/
UPDATE2: I'll follow this guide https://docs.litespeedtech.com/lscache/noplugin/installation/ and see what is the result.
 
Last edited:

Cold-Egg

Administrator
#2
Hi @jodumont ,

I set up a Ghost + nodeJS site on OpenliteSpeed with a 1GB RAM and 1 general CPU server on DigitalOcean, apply a simple blind cache rule on the server config. And page loads fast from my end.

ghostcache.png

Sample cache rule,
Code:
CacheLookup on
RewriteRule .* - [E=cache-control:max-age=120]
How I set up the ghost blog,
https://docs.litespeedtech.com/cloud/images/nodejs/#how-do-i-set-up-a-ghost-blog

Once the cache is a hit, page load is fast, here's just a simple check, running ab command on the same server, not a real benchmark.
Code:
ab -n 10000 -k -H "Accept-Encoding: gzip,deflate" -c 5 http://ghost.com/
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking ghost.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        LiteSpeed
Server Hostname:        ghost.com
Server Port:            80

Document Path:          /
Document Length:        4507 bytes

Concurrency Level:      5
Time taken for tests:   1.129 seconds
Complete requests:      10000
Failed requests:        0
Keep-Alive requests:    10000
Total transferred:      48400000 bytes
HTML transferred:       45070000 bytes
Requests per second:    8854.22 [#/sec] (mean)
Time per request:       0.565 [ms] (mean)
Time per request:       0.113 [ms] (mean, across all concurrent requests)
Transfer rate:          41850.02 [Kbytes/sec] received
 
#3
Hi @jodumont ,

I set up a Ghost + nodeJS site on OpenliteSpeed with a 1GB RAM and 1 general CPU server on DigitalOcean, apply a simple blind cache rule on the server config. And page loads fast from my end.

View attachment 689

Sample cache rule,
Code:
CacheLookup on
RewriteRule .* - [E=cache-control:max-age=120]
How I set up the ghost blog,
https://docs.litespeedtech.com/cloud/images/nodejs/#how-do-i-set-up-a-ghost-blog

Once the cache is a hit, page load is fast, here's just a simple check, running ab command on the same server, not a real benchmark.
Code:
ab -n 10000 -k -H "Accept-Encoding: gzip,deflate" -c 5 http://ghost.com/
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking ghost.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        LiteSpeed
Server Hostname:        ghost.com
Server Port:            80

Document Path:          /
Document Length:        4507 bytes

Concurrency Level:      5
Time taken for tests:   1.129 seconds
Complete requests:      10000
Failed requests:        0
Keep-Alive requests:    10000
Total transferred:      48400000 bytes
HTML transferred:       45070000 bytes
Requests per second:    8854.22 [#/sec] (mean)
Time per request:       0.565 [ms] (mean)
Time per request:       0.113 [ms] (mean, across all concurrent requests)
Transfer rate:          41850.02 [Kbytes/sec] received
if it still up, are you able to run a GTMetrix test on it ?
 
Top