How to Optimize Apache, PHP and MySQL Performance for 1GB RAM VPS
There are lots of requests from the visitors especially from David T. upon how to optimize Apache, php and MySQL/Mariadb server which are installed on VPS server with 1gb of RAM, Such 1 gb ram vps is enough powerful for single application and optimizations are necessary in order to Avoid OOM (out of memory) and take juice from it.
Optimization of Apache :
Optimize Apache which is installed on 1gb VPS, it recommended to use Apache MPM worker as prefork :-
Centos:
Under Centos Open this file in editor:
nano /etc/httpd/httpd.conf
And add this configs at the end of httpd.conf :
KeepAlive Off <IfModule prefork.c> StartServers 6 MinSpareServers 5 MaxSpareServers 15 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 3000 </IfModule>
Then restart Apache server :
service httpd restart
Ubuntu :
Under Ubuntu Open this file in editor:
nano /etc/apache2/apache2.conf
Find and add/change this configs under apache2.conf file :
<IfModule mpm_prefork_module> StartServers 3 MinSpareServers 5 MaxSpareServers 15 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 3000 </IfModule>
Then restart Apache server :
sudo service apache2 restart
Optimization of MYSQL :
To optimize MySQL/Mariadb which is installed on 1gb VPS you need to add this configs in my.cnf under [mysqld] :
[mysqld] symbolic-links=0 skip-external-locking key_buffer_size = 32K max_allowed_packet = 4M table_open_cache = 8 sort_buffer_size = 128K read_buffer_size = 512K read_rnd_buffer_size = 512K net_buffer_length = 4K thread_stack = 480K innodb_file_per_table max_connections=100 max_user_connections=50 wait_timeout=50 interactive_timeout=50 long_query_time=5
On Centos/RHEL based system you can add it in :
/etc/my.cnf
On Ubuntu/Debian based system you can add it in :
/etc/mysql/my.cnf
- Also consider adding SWAP to your VPS which will drastically stabalizes the 1 gb VPS : Create and Add Swap On Linux OS CWP Centos WebPanel and VestaCP
- To optimize PHP just installed php-opcache and memcached (memcached need to be supported by script)
- Configure PHP memory limit not more than 128 mb.
- Use cache system which is provided by your script or for WordPress use WP super cache.