As the hosting world is evolving and growing the need/want of a control panel has become more and more used. I want to start installing some of these panels and test our their performances. I mean what good is a control panel if well the end results just don’t cut it.
With this, I will be reviewing the panels on performance only, not ease of use.
The Test VPS.
* Ubuntu 22.0.4 LTS Used for all tests, unless the panel requires a different version, such as Ubuntu 20.
* Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz
* 4 GB Ram
* 2vCPU
* SSD Drive
Commands ran on the newly installed VPS
apt update && apt -y upgrade && apt -y install curl wget sudo
Each test was a complete format of the VPS and then reinstalled.
What we tested and how. We tested several website combinations.
A static HTML only site.
A PHP site.
A WordPress site.
This is the code I used for a simple index.html and a index.php
<!DOCTYPE html>
<html lang=en>
<head>
<title>Welcome to My Website</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
First on the chopping block: CloudPanel.io – From their website, CloudPanel is the following.
CloudPanel is a free software to configure and manage a server with an obsessive focus on simplicity.
Run static websites, PHP, Node.js and, Python applications.
Installation is pretty straight forward, copy a command or two and go.
This is the commands to get CloudPanel installed on your VPS.
Please note there are few options, MySQL, and MariaDB – https://www.cloudpanel.io/docs/v2/getting-started/other/
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | \
sha256sum -c && sudo bash install.sh
CloudPanel is a great tool that allows for the creation of websites, from Static, PHP, Redis, and WordPress from a few clicks on the mouse.
Now lets get into the testing. Each test was ran using Apache Bench, with the following commands.
ab -n 10000 -c 100 https://html.theserveradmin.com/
ab -n 10000 -c 100 https://php.theserveradmin.com/
ab -n 10000 -c 100 https://wordpress.theserveradmin.com/
As you noted a SSL was used as the internet is now all SSL powered, which it should be.
********** - HTML - **********
Server Software: nginx
Server Hostname: html.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: html.theserveradmin.com
Document Path: /
Document Length: 99 bytes
Concurrency Level: 100
Time taken for tests: 77.995 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 4630000 bytes
HTML transferred: 990000 bytes
Requests per second: 128.21 [#/sec] (mean)
Time per request: 779.946 [ms] (mean)
Time per request: 7.799 [ms] (mean, across all concurrent requests)
Transfer rate: 57.97 [Kbytes/sec] received
********** - PHP - **********
Server Software: nginx
Server Hostname: php.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: php.theserveradmin.com
Document Path: /
Document Length: 136 bytes
Concurrency Level: 100
Time taken for tests: 84.241 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 6580000 bytes
HTML transferred: 1360000 bytes
Requests per second: 118.71 [#/sec] (mean)
Time per request: 842.406 [ms] (mean)
Time per request: 8.424 [ms] (mean, across all concurrent requests)
Transfer rate: 76.28 [Kbytes/sec] received
********** - WordPress - **********
Server Software: nginx
Server Hostname: wordpress.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: wordpress.theserveradmin.com
Document Path: /
Document Length: 85095 bytes
Concurrency Level: 100
Time taken for tests: 72.717 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 856900000 bytes
HTML transferred: 850950000 bytes
Requests per second: 137.52 [#/sec] (mean)
Time per request: 727.174 [ms] (mean)
Time per request: 7.272 [ms] (mean, across all concurrent requests)
Transfer rate: 11507.79 [Kbytes/sec] received
As you can see the this setup avg – 100-135 requests per second using the CloudPanel control panel.
Now on to KeyHelp
Same setup, ran the installer, and then setup the domains, and then ran the tests.
wget https://install.keyhelp.de/get_keyhelp.php -O install_keyhelp.sh ; bash install_keyhelp.sh ;
***** HTML *****
Server Software: Apache
Server Hostname: html.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: html.theserveradmin.com
Document Path: /
Document Length: 136 bytes
Concurrency Level: 100
Time taken for tests: 69.604 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 4120000 bytes
HTML transferred: 1360000 bytes
Requests per second: 143.67 [#/sec] (mean)
Time per request: 696.041 [ms] (mean)
Time per request: 6.960 [ms] (mean, across all concurrent requests)
Transfer rate: 57.80 [Kbytes/sec] received
***** PHP *****
Server Software: Apache
Server Hostname: php.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: php.theserveradmin.com
Document Path: /
Document Length: 136 bytes
Concurrency Level: 100
Time taken for tests: 75.828 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 3120000 bytes
HTML transferred: 1360000 bytes
Requests per second: 131.88 [#/sec] (mean)
Time per request: 758.284 [ms] (mean)
Time per request: 7.583 [ms] (mean, across all concurrent requests)
Transfer rate: 40.18 [Kbytes/sec] received
***** WordPress *****
Server Software: Apache
Server Hostname: wordpress.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: wordpress.theserveradmin.com
Document Path: /
Document Length: 85242 bytes
Concurrency Level: 100
Time taken for tests: 491.388 seconds
Complete requests: 4363
Failed requests: 0
Total transferred: 373032137 bytes
HTML transferred: 371910846 bytes
Requests per second: 8.88 [#/sec] (mean)
Time per request: 11262.624 [ms] (mean)
Time per request: 112.626 [ms] (mean, across all concurrent requests)
Transfer rate: 741.35 [Kbytes/sec] received
*********************** So either something went wrong, or the default settings are garbage, lets try adding some caching features just to help finish a good test.
***** WordPress + W3 Total Cache *****
Server Software: Apache
Server Hostname: wordpress.theserveradmin.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Server Temp Key: X25519 253 bits
TLS Server Name: wordpress.theserveradmin.com
Document Path: /
Document Length: 86510 bytes
Concurrency Level: 100
Time taken for tests: 80.846 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 869040000 bytes
HTML transferred: 865100000 bytes
Requests per second: 123.69 [#/sec] (mean)
Time per request: 808.459 [ms] (mean)
Time per request: 8.085 [ms] (mean, across all concurrent requests)
Transfer rate: 10497.40 [Kbytes/sec] received
So looking at these results, the out of the box WordPress is just a stock/default install. I am not impressed at all, but I will have to do some other researching on the CloudPanel as I am 99% sure it auto installs Varnish Cache.