Linux系统top命令的使用方法介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统top命令的使用方法介绍相关的知识,希望对你有一定的参考价值。
参考技术ALinux系统top命令的使用方法介绍
在Linux系统中top命令可以用来监测进程的状态,也可以修改进程的优先序列。本文就来教大家Linux系统中top命令的使用方法,一起来看一下。
1、主要选项
-d:后接秒数,状态更新的秒数,默认5秒
-b:以批次的方式运行top,通常利用重定向将top的输出重定向到文件
-n:结合-b使用,运行top几次
-p:指定观察的进程的\'PID
2、在 top 执行过程当中可以使用的按键命令:
?:显示在 top 当中可以输入按键命令
P:按CPU的利用率排序显示;
M:按内存的利用率排序显示;
N:以 PID排序!
T:由该进程使用的CPU时间累积 (TIME+) 排序。
k:给某个 PID 一个信号(signal)
r:给某个 PID 重新指定一个nice值。
q:退出top。
3、例子
$top -d 2 //每2秒更新一次运行状态
$top -b -n 2 》 ~/tmp/top.txt //将2次运行的状态信息导出到文件中
$top -d 2 -p 1425 //每2秒更新一次指定进程的运行状态信息
以上就是Linux中top命令的使用方法的全部内容了,所以top命令的功能,有点类似微软系统中进程管理器的功能,使用top命令可以监控Linux的性能,具体方法可以参考:《如何使用top命令监控Linux系统性能》
Linux系统的进程管理
Linux系统的进程管理
一、系统进程介绍
1.进程概念
进程process是指正在执行的程序;是程序正在运行的一个实例。它由程序指令,和从文件、其它程序中读取的数据或系统用户的输入组成。
2.进程特点
①进程是加载到内存中的一段指令
②进程ID(PID)是唯一标识进程
③子进程集成父进程的属性信息
3.进程类型
①前台进程(也称为交互式进程):这些进程由终端会话初始化和控制。换句话说,需要有一个连接到系统中的用户来启动这样的进程;它们不是作为系统功能/服务的一部分自动启动。
②后台进程(也称为非交互式/自动进程: 这些进程没有连接到终端;它们不需要任何用户输入。
③守护进程:这是后台进程的特殊类型,它们在系统启动时启动,并作为服务一直运行;它们不会死亡。它们自发地作为系统任务启动(作为服务运行)。但是,它们能被用户通过 init 进程控制。
二、查看系统进程
1.PS命令
#PS 查看进程信息
-a 查看所有终端的进程
-u 打印进程的所有者信息
-x 查看不属于任何终端的进程
-e 查看系统的所有进程
-f 查看额外的信息
-o 指定格式输出
--sort 指定排序的参数,例如: --sort=-%mem 按照内存大小降序
常用组合为: ps aux 或者 ps -ef
2.查看系统进程
[root@node1 ~]# ps aux |head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.5 176372 10932 ? Ss 15:22 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0.0 0.0 0 0 ? S 15:22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 15:22 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 15:22 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< 15:22 0:00 [kworker/0:0H-kblockd]
root 8 0.0 0.0 0 0 ? I< 15:22 0:00 [mm_percpu_wq]
root 9 0.0 0.0 0 0 ? S 15:22 0:00 [ksoftirqd/0]
root 10 0.0 0.0 0 0 ? R 15:22 0:00 [rcu_sched]
root 11 0.0 0.0 0 0 ? S 15:22 0:00 [migration/0]
[root@node1 ~]# ps -ef |head
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 15:22 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0 0 15:22 ? 00:00:00 [kthreadd]
root 3 2 0 15:22 ? 00:00:00 [rcu_gp]
root 4 2 0 15:22 ? 00:00:00 [rcu_par_gp]
root 6 2 0 15:22 ? 00:00:00 [kworker/0:0H-kblockd]
root 8 2 0 15:22 ? 00:00:00 [mm_percpu_wq]
root 9 2 0 15:22 ? 00:00:00 [ksoftirqd/0]
root 10 2 0 15:22 ? 00:00:00 [rcu_sched]
root 11 2 0 15:22 ? 00:00:00 [migration/0]
3.ps aux结果说明
USER 用户
PID 进程ID
%CPU CPU占用
%MEM 内存占用
VSZ 项内存申请地址空间
RSS 实际使用内存
TTY 使用终端
STAT 进程状态
START 进程开始时间
TIME 进程持续时间
进程命令 COMMAND
S 休眠
D 不可中断
R 正在运行
Z 僵尸进程
T 停止
s 子进程
< 高优先级
n 低优先级
+ 后台进程
I 锁定进程
4.top命令
①top命令使用方法
[root@node1 ~]# top
top - 18:47:52 up 3:25, 2 users, load average: 0.61, 0.66, 0.71
Tasks: 237 total, 2 running, 235 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1966.1 total, 854.9 free, 537.0 used, 574.2 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1275.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
835 root 20 0 1277568 52788 23924 S 0.7 2.6 0:18.12 containerd
821 zabbix 20 0 710536 30140 15880 S 0.3 1.5 0:55.17 zabbix_agent2
4887 root 20 0 0 0 0 I 0.3 0.0 0:00.01 kworker/0:1-events
1 root 20 0 176372 10932 8104 S 0.0 0.5 0:01.11 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
② top命令选项
按键盘数字1,可监控每个逻辑CPU状况
C 切换显示命令名称和完整命令行
M 可按内存占用情况进程排序
P 根据CPU使用百分比大小进程排序
T 根据时间/累计时间进程排序
f 可以选择显示的内容
5.pgerp命令
# pgrep
-U 查找摸个用户的进程ID
-G 查找某个组的进程ID
-P 根据父进程ID,查找所有子进程ID
-l 不仅打印pid,也打印进程名
-o 表示该程序有多个程序正在运行,则只查招老的,即最先启动,(多个进程时即父进程PID)
-n 表示该程序有多个程序正在运行,则查找最新的
-d 定义多个进程之间的分隔符,如果不定义则使用换行符
[root@node1 ~]# pgrep -l sshd
819 sshd
2882 sshd
2884 sshd
2887 sshd
2905 sshd
3669 sshd
3671 sshd
3673 sshd
3689 sshd
6.pidof
[root@node1 ~]# ps -p $(pidof sshd)
PID TTY STAT TIME COMMAND
819 ? Ss 0:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,
2882 ? Ss 0:00 sshd: root [priv]
2884 ? S 0:00 sshd: root@pts/1
2887 ? Ss 0:00 sshd: root [priv]
2905 ? S 0:00 sshd: root@notty
3669 ? Ss 0:00 sshd: root [priv]
3671 ? S 0:00 sshd: root@pts/2
3673 ? Ss 0:00 sshd: root [priv]
3689 ? S 0:00 sshd: root@notty
[root@node1 ~]#
三、signal信号的管理
1.signal信号的介绍
对进程的操作可以通过发送不同的信号来实现。
2.给进程发送信号
kill 信号 pid
killall 信号 comm
pikill [-signal] pattern
3.man 7 signal
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating-point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers; see pipe(7)
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
4.常用信号
signal 15 终止
signal 9 立即终止
signal 1 重读配置文件
[root@tianyi ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
四、进程的优先级
1.进程优先级介绍
调度优先级决定对CPU的访问,进程的nice值影响优先级。
nice值为-20到19 ,缺省为0,低nice值意味着高CPU优先级
2.查看进程优先级
[root@node1 ~]# ps -eo pid,comm,nice --sort=-nice |head
PID COMMAND NI
23 khugepaged 19
766 alsactl 19
22 ksmd 5
1 systemd 0
2 kthreadd 0
9 ksoftirqd/0 0
10 rcu_sched 0
11 migration/0 -
12 watchdog/0 -
3.优先级修改
①当启动进程时
[root@node1 ~]# nice -n 5 vim file.txt
②当启动进程后
[root@node1 ~]# pidof vim
5330
[root@node1 ~]# ps -eo pid,comm,nice |grep vim
5330 vim 0
[root@node1 ~]# renice 5 5330
5330 (process ID) old priority 0, new priority 5
[root@node1 ~]# ps -eo pid,comm,nice |grep vim
5330 vim 5
五、作业控制
1.后台运行一个程序
[root@node1 ~]# firefox &
[1] 5397
[root@node1 ~]# Running without a11y support!
2.显示后台程序
[root@node1 ~]# jobs
[1]+ Running firefox &
3.停止运行程序
[root@node1 ~]# kill 15 5397
[root@node1 ~]# jobs
[1]+ Terminated firefox
4.后台和前台恢复程序
[root@tianyi ~]#
[root@tianyi ~]# jobs
[1]- Running ping www.baidu.com > /dev/null &
[2]+ Stopped ping www.jd.com > /dev/null
[root@tianyi ~]# bg 2
[2]+ ping www.jd.com > /dev/null &
[root@tianyi ~]# jobs
[1]- Running ping www.baidu.com > /dev/null &
[2]+ Running ping www.jd.com > /dev/null &
[root@tianyi ~]# fg 2
ping www.jd.com > /dev/null
^Z
[2]+ Stopped ping www.jd.com > /dev/null
[root@tianyi ~]# jobs
[1]- Running ping www.baidu.com > /dev/null &
[2]+ Stopped ping www.jd.com > /dev/null
以上是关于Linux系统top命令的使用方法介绍的主要内容,如果未能解决你的问题,请参考以下文章