When you’re facing performance issues, it’s always useful to check CPU/MEM usage per process to see if you have an issue with a specific process. For that, you can use ps and some sorting commands.
Tip: You can shrink the results to the first lines by using head
Memory analysis
We’re using the –sort -rss attributes to get the results sorted by RSS in the desc order (use –sort rss for the asc order)
$ps auxw --sort -rss | head -n5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND mysql 604 0.2 8.4 1628428 177968 ? Ssl Jun30 71:59 /usr/sbin/mysqld phpuser 9625 0.1 1.9 239588 40896 ? S Jul12 12:35 php-fpm: pool www phpuser 14625 0.1 1.8 239572 39668 ? S Jul12 12:08 php-fpm: pool www named 1849 0.0 1.2 299868 25984 ? Ssl Jun30 0:11 /usr/sbin/named -f -u bind root 252 0.0 0.5 82868 12096 ? Ss Jun30 1:19 /usr/sbin/syslog-ng -F
CPU analysis
We’re using the –sort -%cpu attributes to get the results sorted by CPU in the desc order (use –sort %cpu for the asc order)
ps auxw --sort -%cpu | head -n5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND named 1849 0.9 0.1 299868 25984 ? Ssl Jun30 0:21 /usr/sbin/named -f -u bind root 1668 0.5 0.0 259000 10332 ? Sl Jun23 195:48 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 postfix 9889 0.4 0.0 102368 7736 ? S 05:44 0:00 smtpd -n smtp -t inet -u -o stress= mysql 604 0.2 8.4 1628428 177968 ? Ssl Jun30 72:09 /usr/sbin/mysqld phpuser 7960 0.1 1.8 238572 38780 ? S Jul17 4:35 php-fpm: pool www
Then…
Once you got the results, it’s time for you to investigate further and analyze what’s happening with those processes! Good luck!