How to Optimize Apache, PHP and MySQL Performance for 1GB RAM VPS

How to Optimize Apache, PHP and MySQL Performance for 1GB RAM VPS

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 the juice from it.

Optimization of Apache :

Optimize Apache which is installed on 1gb VPS, it recommended using Apache MPM worker as prefork:-

Centos/RHEL:

Under Centos Open this file in the editor:

nano /etc/httpd/httpd.conf

And add this config 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 the editor:

nano /etc/apache2/apache2.conf

Find and add/change this config 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 config 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 

  • 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.