Dhanamerdeka
KeepAlive = On
KeepAliveTimeout = 2
StartServers 2
MinSpareServers 2
MaxSpareServers 10
MaxClients 5
MaxRequestsPerChild 300
AllowOverride None
You should gradually move toward nginx the problem with apache is the memory you need atleast 2 GB of RAM to use it, after all the minimum requirements are 4GB and thats only for apache.
Mysql need's by default 512MB of RAM.
innodb_buffer_pool_size = 180M with this settings you can limit the RAM ussage, a high value is pointless
Mysql is runing on a local server so if you have a ssd on it the access is pretty fast there is no point to use your ram for nothing.
sort_buffer_size = 10M
read_buffer_size = 10M ( always on mysql configuration use M (MB) because if you use 1024 is translated to bytes and the sort_buffer_size have a minimum value of 32768 bytes so that's being said, 1024 is a useless number used two times in the above configuration, read_buffer_size have a 8192 minimum value)
The best configuration is your own, just modify the things to suit your server, allways ping your website when is not under a CDN ( like Cloudflare) that is useless because you don't ping your server so you don't know the real numbers, using cache to serve static files that again improve the load on server and you can see above the performance is not great for dynamic content so you should modify the settings and improve the performance of the most used service on the VPS that would be apache.
And run PHP in fastcgi mode, https://httpd.apache.org/mod_fcgid/ .
https://www.php.net/manual/en/faq.installation.php#faq.installation.apache2
Doing some research on your own is better than any "better performance" configuration you can find on internet.
Without caching, the server response averages 800-900ms.
With caching of about 100-150ms.
Even default settings can do better than this.
Add atleast 1GB of RAM and a second CPU the second one is important when you get more visitors the first one will give apache enought memory to don't care about them atleast for a time.