[HowTo] Optimize Apache, PHP and MySQL/MariaDB Performance for Low (1GB) RAM VestaCP VPS
Posted: Tue Sep 11, 2018 6:17 pm
There are lots of requests from the visitors 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:
And add this configs at the end of httpd.conf :
Then restart Apache server :
Ubuntu :
Under Ubuntu Open this file in editor:
Find and add/change this configs under apache2.conf file :
Then restart Apache server :
Optimization of MYSQL/MariaDB :
To optimize MySQL/Mariadb which is installed on 1gb VPS you need to add this configs in my.cnf under [mysqld] :
On Centos/RHEL based system you can add it in :
On Ubuntu/Debian based system you can add it in :
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:
Code: Select all
nano /etc/httpd/httpd.conf
Code: Select all
KeepAlive Off
<IfModule prefork.c>
StartServers 6
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 3000
</IfModule>
Code: Select all
service httpd restart
Under Ubuntu Open this file in editor:
Code: Select all
nano /etc/apache2/apache2.conf
Code: Select all
<IfModule mpm_prefork_module>
StartServers 3
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 3000
</IfModule>
Code: Select all
service apache2 restart
To optimize MySQL/Mariadb which is installed on 1gb VPS you need to add this configs in my.cnf under [mysqld] :
Code: Select all
[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
Code: Select all
/etc/my.cnf
Code: Select all
/etc/mysql/my.cnf
- Also consider adding SWAP to your VPS which will drastically stabalizes the 1 gb VPS : Create and Add Swap On Centos7 with 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.