linux_wiki:identify_cpu_memory_intensive_processes_adjust_process_priority_with_renice_and_kill_processes

This is an old revision of the document!


Identify Cpu Memory Intensive Processes Adjust Process Priority With Renice And Kill Processes

General Information

Process wrangling. Get em cow-poke and watch out for zombies.


pgrep

Grep for processes and return the PID.

Search processes for httpd

pgrep httpd -l
  • Returns PID (default) and name (-l)

Search for all processes being run by the user called “user”

pgrep -u user -l

All processes not owned by the root user

pgrep -v -u root -l

ps

All processes, user defined display options

ps -eo pid,comm,nice
  • -e ⇒ every (all) processes
  • -o ⇒ user defined format

GNU Style Options

ps -elf
  • -e ⇒ every (all) processes
  • -l ⇒ long format
  • -f ⇒ full format listing (adds STIME column and displays CMDs full paths)

BSD Style Options

ps aux
  • a ⇒ eliminate the “only yourself” restriction
  • u ⇒ display user oriented format
  • x ⇒ eliminate the “must have tty” restriction

system load

Load average

  • percentage of processing power used
  • Number of CPUs is important

Get the number of CPUs

grep -c proc /proc/cpuinfo
  • -c ⇒ count of matched lines
  • proc ⇒ the string searched for in /proc/cpuinfo

View load averages

w
 
OR
 
uptime
 17:03:49 up  2:02,  1 user,  load average: 0.00, 0.01, 0.04
  • shows the: last minute, last 5 mins, last 15 mins load
  • last min = 0%, last 5 mins = 1%, last 15 mins = 4%
  • If 2 cpus, a load average of 1.00 would be 50% CPU load. (1.00 / 2 = .50)
  • If 2 cpus, a load average of 2.00 would be 100% CPU load. (2.00 / 2 = 1.00)

Percentage of total processing power in use = load average / (# of cpus)

top

Open top

top
  • Sorted by %cpu used by default

Interactive commands

  • z ⇒ toggle colors (easier to see highlighted columns)
  • x ⇒ highlight current sort column
  • 1 ⇒ expand CPU list to see individual usage
  • M ⇒ sort by %memory used
  • P ⇒ sort by %cpu used
  • < or > ⇒ change sort column
  • r ⇒ (renice) enter pid to renice, then nice level (selects top PID by default, can change)
  • k ⇒ (kill) enter pid, then signal to send (selects top PID by default, can change)

Start top with a screen update delay of 2 seconds

top -d 2
  • Default is update the display every 3 seconds

Highest priority ⇒ -20 (the least nice to other processes)
Lowest priority ⇒ 19 (the most nice to other processes)
Default nice level if nice run, but level not specified ⇒ 10

Start program with a nice level of 5

nice -n 5 httpd

Change nice level of a running process to -5

renice -n -5 2879

Change nice level of all running httpd processes to -10

renice -n -10 $(pgrep httpd)

List kill signals

kill -l
  • 1 (SIGHUP) ⇒ hang up, similar to closing a terminal window
  • 2 (SIGINT) ⇒ keyboard interrupt (ctrl+c)
  • 3 (SIGQUIT) ⇒ ask process to quit
  • 9 (SIGKILL) ⇒ Kill process immediately, not blockable
  • 15 (SIGTERM) ⇒ Asks process to terminate cleanly. Default when nothing passed.
  • 18 (SIGCONT) ⇒ continue process that was stopped
  • 19 (SIGSTOP) ⇒ stop the process, not ignorable
  • 20 (SIGTSTP) ⇒ stop that can be ignored

Kill process by name (instead of PID)

pkill httpd
  • Kills all process ids named httpd, sending signal 15 (SIGTERM)

Remove a user's ssh session (kick user off system)

pkill -u rjones sshd

Kill all processes started from a specific terminal

pkill -t pts/1
  • This does NOT kick them off the system, only kills their running programs started from that session.

Stop a process that is job #1

kill -SIGSTOP %1
  • Alt command: kill -19 %1

Contine the process that is job #1

kill -SIGCONT %1
  • Alt command: kill -18 %1

Kill an individual process with PID 2594

kill -SIGKILL 2594
  • Alt command: kill -9 2594

  • linux_wiki/identify_cpu_memory_intensive_processes_adjust_process_priority_with_renice_and_kill_processes.1456889200.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)