I don't get it. I have a VPS with Nginx and php-fpm and MySQL. Should be very lightweight. No Apache, right? When I reboot, it is very lightweight. ~ 50/481 MB MEM usage. Very acceptable IMO.
And after a few days there are ~ 20 mysqld processes running and ~ 7 php-fpm processes and ~ 8 getty processes and 3/4 of 1024 MB swap full and the server is out of memory!
I'm not a pro, but I'm pretty sure that's not right...
I think the crons have something to do with it. I have 3 jobs scheduled:
- a simple one (read smtp for new mail) every minute
- a big one (read RSS from ~ 30 blogs) every night
- a simple one (mysqldump of 2 small databases) every morning
I'm not sure why I think that =) Probably because the simple job (SMTP, every minute) is always in the htop list. (But always with 0% cpu, 0% mem and 0:00:00 time...)
The 20 mysqld's are also very strange, but they don't seem to require a lot of memory.
The php-fpm's apparently do consume a lot of memory. In the 10 minutes it took to write this, the mem has gone from 66 MB to 120 MB! The top 6 mem consuming processes are php-fpm: pool www
. When I restart /etc/init.d/php5-fpm
the mem goes down to ~ 70 MB. How does php-fpm require 400+ MB of mem? What's up with that?
Swap has been pretty steady at ~ 98 MB the last 10 mins.
Anyone know what might be going on? (I know it's very little info on a whole server.) I can add details if you wish.
I'm not even running any decent sized websites!
More info:
A screen of htop --sort-key PERCENT_MEM
:
Pastebin with ps xv
, cat /proc/meminfo
and top
: http://pastebin.com/PfXeupMN
There was something wrong in the server config (very very slow i/o) that was to blame. The vps provider did a hardware update (I think) and it was all fixed. Mem usage might still be high (I don't know) but overall the server is super fast again.
Sorry I didn't mention this before.