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/RHEL:
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 :
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
- 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.