ps进程信息
ps用于显示系统内的所有进程
-l或l 采用详细的格式来显示进程状况
常用方式: ps -elf 和ps -ef
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan02 ? 00:00:05 /sbin/init nospectre_v2 nopti noibrs noibpb
root 2 0 0 Jan02 ? 00:00:00 [kthreadd]
root 4 2 0 Jan02 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Jan02 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 Jan02 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 Jan02 ? 00:00:21 [rcu_sched]
root 9 2 0 Jan02 ? 00:00:00 [rcu_bh]
root 10 2 0 Jan02 ? 00:00:00 [migration/0]
root 11 2 0 Jan02 ? 00:00:00 [watchdog/0]
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 39973 ep_pol Jan02 ? 00:00:05 /sbin/init nospectre_v2 nopti noibrs noibpb
1 S root 2 0 0 80 0 - 0 kthrea Jan02 ? 00:00:00 [kthreadd]
1 I root 4 2 0 60 -20 - 0 worker Jan02 ? 00:00:00 [kworker/0:0H]
1 I root 6 2 0 60 -20 - 0 rescue Jan02 ? 00:00:00 [mm_percpu_wq]
1 S root 7 2 0 80 0 - 0 smpboo Jan02 ? 00:00:00 [ksoftirqd/0]
1 I root 8 2 0 80 0 - 0 rcu_gp Jan02 ? 00:00:21 [rcu_sched]
1 I root 9 2 0 80 0 - 0 rcu_gp Jan02 ? 00:00:00 [rcu_bh]
1 S root 10 2 0 -40 - - 0 smpboo Jan02 ? 00:00:00 [migration/0]
5 S root 11 2 0 -40 - - 0 smpboo Jan02 ? 00:00:00 [watchdog/0]
1 S root 12 2 0 80 0 - 0 smpboo Jan02 ? 00:00:00 [cpuhp/0]
根据进程名字或者其他信息,通过grep 命令找到目标进程,也可以看到进程启动脚本的全路径
检测是否有活动进程
# sudo ps -ef|grep "nginx:master process" | grep -v grep
检测有几个同样的活动进程
sudo ps -ef|grep "nginx:master process" | grep -v grep | wc -l
top进程cpu内存信息
top命令⽤于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占⽤情况,可以按照 CPU、内存的使⽤情况和执⾏时间对进程进⾏排序。
# top
从输出我们可以看到整体的cpu占用率,CPU负载,以及进程占用CPU和内存等资源的情况。我们可以用以下所示的top命令的快捷键对输出的显示信息进行转换
- t :切换报示进程和cpu状态信息
- n:切换显示内存信息
- r:重新设置一个进程的优先级。系统提示用户输入需要改变的进程pid及需要设置的进程优先级,然后输入个正数值使优先级降低,反之则可以使该进程拥有更高的优先级,即是在原有的基础上进行相加,默认优先级是100
- k:终止一个进程,系统将提示用户输入需要终止的进程PID
- s:改变刷新的时间间隔
- u:查看指定用户的进程
查看具体进程下的线程:top -Hp pid
top - 00:46:34 up 2 days, 7:31, 0 users, load average: 0.11, 0.03, 0.01
Threads: 11 total, 0 running, 11 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.5 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4038676 total, 794276 free, 374740 used, 2869660 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3374744 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10157 root 20 0 968152 87492 36284 S 0.0 2.2 0:13.33 node
10159 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.00 node
10160 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.24 node
10161 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.23 node
10162 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.23 node
10163 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.28 node
10164 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.00 node
10171 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.28 node
10172 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.30 node
10173 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.29 node
10174 root 20 0 968152 87492 36284 S 0.0 2.2 0:00.30 node
pidstat 进程资源
pidstat用于监控全部或指定的进程占用系统资源的情况,包括CPU、内存、磁盘i/o、进程切换、线程数等数据
- -u:表示查看cpu相关的性能指标
- -w:表示查看上下文切换情况
- -t:查看线程相关的信息,默认是进程的;常与-w结合使用(cpu的上下文切换包括进程的切换、线程的切换、中断的切换)
- -d:展示磁盘io统计数据
- -p:指明进程号
使用方式:pidstat [option] interval [conut]
使用:pidstat -urd -p 进程号
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# pidstat -urd -p 10157
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627) 01/05/2023 _x86_64_ (2 CPU)
12:57:06 AM UID PID %usr %system %guest %wait %CPU CPU Command
12:57:06 AM 0 10157 0.01 0.00 0.00 0.00 0.01 0 node
12:57:06 AM UID PID minflt/s majflt/s VSZ RSS %MEM Command
12:57:06 AM 0 10157 0.58 0.00 968152 87564 2.17 node
12:57:06 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
12:57:06 AM 0 10157 0.00 0.10 0.00 0 node
输出内存的使用信息
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# pidstat -r -p 10157
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627) 01/05/2023 _x86_64_ (2 CPU)
01:00:04 AM UID PID minflt/s majflt/s VSZ RSS %MEM Command
01:00:04 AM 0 10157 0.58 0.00 968152 87732 2.17 node
minflt/s : 每秒次缺页错误次数,次缺页错误次数即虚拟内存地址映射成物理内存地址产生的page fault次数
majflt/s : 每秒主缺页错误次数,当虚拟内存地址映射成物理内存地址时,相应的page在swap中,§这样的,一般在内存使用紧张时产生
VSZ : 该进程使用的虚拟内存(以kb为单位)
PSS : 该进程使用的物理内存(以kb为单位)
MEM : 当前任务使用的有效内存的百分比
-----------------------------------------------------------------------------
输出cpu的使用信息
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# pidstat -u -p 10157
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627) 01/05/2023 _x86_64_ (2 CPU)
01:00:14 AM UID PID %usr %system %guest %wait %CPU CPU Command
01:00:14 AM 0 10157 0.01 0.00 0.00 0.00 0.01 1 node
usr:用户层任务正在使用的cpu
system:系统层正在执行的任务cpu使用百分比
guest:运行虚拟机的cpu占用百分比
cpu:所有的使用cpu的时间百分比
cpu:处理器数量
Command:命令
------------------------------------------------------------------------------
输出磁盘io的使用信息
root@ecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# pidstat -d -p 10157
Linux 4.15.0-169-generic (ecs-x-large-2-linux-20200309113627) 01/05/2023 _x86_64_ (2 CPU)
01:00:22 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
01:00:22 AM 0 10157 0.00 0.10 0.00 0 node
kB_rd/s :每秒此进程从磁盘读取的千字节数
kB_wr/s :此进程已经或者将要写入磁盘的每秒千字节数
kB_ccwr/s :由任务取消的写入磁盘的千字节数
-----------------------------------------------------------------------------
上下文切换
cswch/s 每秒自动上下文切换
nvcswch/s 每秒非自愿的上下文切换