Using the 'ps' command to troubleshoot your website

Overview

There are several commands you can run to troubleshoot your server. These commands must be run in a terminal after logging into the server via SSH. View the following article for further details:

The 'ps' command

One command you could use to troubleshoot is ps. The ps command helps you keep track of your Memory and CPU usage.

For example, if you're using a VPS machine and start to notice that your memory usage went from 60MB to 250MB a day, you should probably take a close look at what is going on behind the scenes.

The following describes various commands that help you pin point high memory usage and high CPU usage.

The following commands must be run within a shell terminal. View the SSH article for further details.

Displaying the top ten processes

The following four commands display the top ten (10) processes that are using memory:

[server]$ ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
[server]$ ps -eo pcpu,pid,user,args | sort -r -k1 | less
or:
[server]$ ps -eo pmem,pid,user,args | sort -k 1 -r | head -10
[server]$ ps -eo pmem,pid,user,args | sort -r -k1 | less

The following command shows USERNAME, CPU%, MEMORY%, and the number of processes running. Run this command on a single line:

[server]$ ps aux | awk '{cpu[$1]+=$3; mem[$1]+=$4; procs[$1]+=1} END { for (user in cpu){ print user,"cpu:",cpu[user],"mem:",mem[user],"proc:",procs[user] } }'

Displaying memory usage with /proc/meminfo

[server]$ ps aux --sort pmem

Use the following command to view memory usage over time (requires you to repeat the command or usage of a cron job):

[server]$ ps ev --pid=[EnterPID]

To display all currently running processes and detailed information, use the following command:

[server]$ ps -ef

and on most systems:

[server]$ ps -aux

You can find a memory leak by running:

[server]$ ps ev --pid=[HighestEnterPID]

See also

Did this article answer your questions?

Article last updated PST.

Still not finding what you're looking for?