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

by Sandy

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

If this post helps you in any way please consider a donation

Donate with PayPal :

md-donate

Donate with Paytm :

md-donate

You may also like

4
Leave a Reply

avatar
3 Comment threads
1 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
SandyKyriakosMohammadDavid Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
David
Guest
David

Absolutely fab, thanks for the quick and yet powerful configs especially for mysql.

Mohammad
Guest

Really nothing to say, Just Big thanks,
but could this Configurations be for 2gb VPS using VestaCP?

Kyriakos
Guest

And what if you have a huge WooCommerce site with 50 live visitors at a 4CPU Vps with 12GB RAM? What do you suggest please?

Great post.