This issue is the server seem to only have 490MB of RAM on the machine and you have 421MB used. Leaving only 68MB free; that is not a lot of memory for any system to work with.
Looking at the output from
top shows that MySQL (aka:
mysqld) is the culprit.
The best thing you can do if this is a temporary situation is to simply stop MySQL like this:
sudo service mysqld stop
Then with MySQL stopped, you can run
yum install as expected.
But another solution would be to use a script like “MySQL Tuning Primer” to help assess the MySQL usage and configuration on the serve and adjust accordingly. The reason being is plain vanilla MySQL out of the box will be a memory hog. But “MySQL Tuning Primer” will help assess your install and let you know what you can tweak. Including lowering memory requirements so the setup can be happy with your limited resources. The only catch is MySQL needs to be actively running for at least 48 hours straight for the “MySQL Tuning Primer” results to be worth anything. Past that, performance tuning MySQL with this script a great way to fine-tune your L.A.M.P. setup.
Additionally, since you are running Apache you can probably lower the RAM requirements for Apache (aka
httpd) so you free up more RAM that way. This is a fairly generic set of tweaks for a basic development environment of Apache, but should help you. First open up your Apache config via your favorite command line editor like this; I prefer
nano but any text editor is good:
sudo nano /etc/httpd/conf/httpd.conf
Now find the line that a says
Timeout and change that to “120”; two minutes is a reasonable timeout window:
MaxKeepAliveRequests and change that to “24”; “keep alive” connections are good, but don’t let them overwhelm your setup:
KeepAliveTimeout and set that to “2”; this should correlate to how fast one page on your site loads and 2 seconds is a good average:
Now look for the XML config directive set as
The key to this is
MaxClients. By default Apache’s settings are quite high; 255 for
MaxClients I believe. But the reality is even a high traffic site will only get 70-80 connections per second… And then die… Meaning Apache connections are stateless so the benchmark is connections per second. So for a development or small scale server, “40” is a good number.
Now with those key adjustments made, restart Apache like this:
sudo service httpd restart
By adjusting MySQL and Apache to have more reasonable settings than default/canned values can free up resources on your server and make everything run more smoothly.