Reducing Memory Usage by Apache and MySQL in a 512MB VPS
After performing these configurations on your database, you'll have some free space and you definitely won't be maxing out your available ram.
Join the DZone community and get the full member experience.
Join For FreeInstalling with the default Apache and MySQL configurations, you end up with far too many idle Apache threads, and MySQL is the largest memory user by far. The default config of these two is maxing out my available 512MB in my VPS server:
/etc/apache2$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r
%MEM %CPU RSS VSZ COMMAND
9.5 0.0 49904 720256 /usr/sbin/mysqld
6.7 0.0 35620 286860 /usr/sbin/apache2 -k start
6.5 0.0 34452 283524 /usr/sbin/apache2 -k start
6.2 0.0 32692 283012 /usr/sbin/apache2 -k start
5.9 0.0 31276 283116 /usr/sbin/apache2 -k start
5.8 0.0 30896 282652 /usr/sbin/apache2 -k start
5.0 0.0 26724 282588 /usr/sbin/apache2 -k start
4.8 0.0 25204 279552 /usr/sbin/apache2 -k start
4.8 0.0 25200 279552 /usr/sbin/apache2 -k start
4.7 0.0 25156 279508 /usr/sbin/apache2 -k start
4.4 0.0 23216 279540 /usr/sbin/apache2 -k start
2.8 0.0 15136 278400 /usr/sbin/apache2 -k start
0.7 0.0 3968 90908 sshd: myuser [priv]
0.4 0.0 2564 61312 /usr/sbin/sshd -D
0.4 0.0 2264 33188 init
0.3 0.0 2060 18128 -bash
...
/etc/apache2$ free
total used free shared buffers cached
Mem: 524288 476496 47792 68220 0 260764
-/+ buffers/cache: 215732 308556
Swap: 0 0 0
From tips in this article, I reduced down the Apache threads and now we’re at:
/etc/apache2/mods-enabled$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r
%MEM %CPU RSS VSZ COMMAND
9.5 0.0 49904 720256 /usr/sbin/mysqld
2.8 0.0 15132 278400 /usr/sbin/apache2 -k start
1.1 0.0 6004 278424 /usr/sbin/apache2 -k start
0.7 0.0 3968 90908 sshd: myuser [priv]
0.4 0.0 2564 61312 /usr/sbin/sshd -D
0.4 0.0 2264 33188 init
0.3 0.0 2076 18136 -bash
/etc/apache2/mods-enabled$ free
total used free shared buffers cached
Mem: 524288 400244 124044 68220 0 262480
-/+ buffers/cache: 137764 386524
Swap: 0 0 0
Now we’ve got some free space and we're definitely not maxing out our available ram. Next up, I’ll take a look at MySQL.
Published at DZone with permission of Kevin Hooke, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments