一、功能

监控进程占用系统资源使用情况,如CPU,内存、设备IO、任务切换、线程等

二、安装

yum install sysstat

三、使用

  1.查看使用方式说明

man pidstat

   2.每隔1s打印一次

pidstat 1
3.统计10次, 每隔2s打印一次
pidstat 2 10
4.cpu统计,默认-u
复制代码
[root@k8s ~]# pidstat -u 2 10
Linux 3.10.0-1160.el7.x86_64 (k8s) 10/20/2023 _x86_64_ (4 CPU)

11:35:55 PM UID PID %usr %system %guest %CPU CPU Command
11:35:57 PM 0 433 0.00 0.50 0.00 0.50 0 xfsaild/dm-0
11:35:57 PM 0 1167 1.99 2.99 0.00 4.98 1 kubelet
11:35:57 PM 0 8324 0.00 0.50 0.00 0.50 1 xfsaild/sdb1
11:35:57 PM 1001 8393 0.00 0.50 0.00 0.50 3 operator
11:35:57 PM 0 8638 0.00 0.50 0.00 0.50 0 containerd
复制代码
字段说明:

UID: 用户id

PID: 进程id

%usr:用户态cpu

%system: 内核cpu

%guest:运行虚拟处理器cpu使用率

%wait:进程等待运行cpu使用率

%cpu: 总cpu使用率

cpu:进程在哪个cpu运行

command: 进程命令行

  5.活跃进程io读写情况

[root@k8s ~]# pidstat -d 2 10
Linux 3.10.0-1160.el7.x86_64 (k8s) 10/20/2023 _x86_64_ (4 CPU)

11:43:07 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11:43:09 PM 0 91087 0.00 3.96 0.00 prometheus
11:43:09 PM 0 130214 0.00 31.68 0.00 etcd

字段说明: 

kB_rd/s:每秒读KB数

kB_wr/s: 每秒写KB数

kB_ccwr/s:每秒取消写入的KB

iodelay: io的延迟

  6.进程上下文切换

[root@k8s ~]# pidstat -w 1 5
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/20/2023     _x86_64_    (4 CPU)

11:48:04 PM   UID       PID   cswch/s nvcswch/s  Command
11:48:05 PM     0         6      4.90      0.00  ksoftirqd/0
11:48:05 PM     0         9    121.57      0.00  rcu_sched
11:48:05 PM     0        14      4.90      0.00  ksoftirqd/1
11:48:05 PM     0        19      2.94      0.00  ksoftirqd/2

字段说明:

cswch/s: 每秒自愿上下文切换次数

nvcswch/s: 每秒非自愿上下文切换次数

 

7.活跃进程内存使用情况

[root@k8s ~]# pidstat -r 1 5
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/20/2023     _x86_64_    (4 CPU)

11:50:17 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:50:18 PM     0      9019      0.00      0.00  712632  15744   0.20  containerd-shim
11:50:18 PM     0     80020    281.19      0.00  108528   1180   0.01  pidstat
11:50:18 PM     0     91087      1.98      0.00 2059072 235940   2.95  prometheus
11:50:18 PM     0    130214     13.86      0.00 11215796  70008   0.88  etcd

字段说明:

minflt/s: 每秒不需要从磁盘加载内存页面的次要故障总数

majflt/s: 每秒需要从磁盘加载内存页面的主要故障总数

VSZ: 进程使用的虚拟内存大小(KB)

RSS: 进程使用非交换区里的物理内存(kB)

%MEM: 物理内存使用百分比

8.堆栈利用率

[root@k8s ~]# pidstat -s 1 2
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/20/2023     _x86_64_    (4 CPU)

11:57:50 PM   UID       PID StkSize  StkRef  Command
11:57:51 PM     0     40993    132      20  containerd-shim
11:57:51 PM     0     86226    132      16  pidstat
11:57:51 PM 65534     90993    132      12  alertmanager 

 字段说明:

StkSize: 进程保留堆栈的内存量(KB)

StkRef: 进程利用堆栈的内存量(KB)

9.显示用户名

[root@k8s ~]# pidstat -U 1 2
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/21/2023     _x86_64_    (4 CPU)

12:01:12 AM     USER       PID    %usr %system  %guest    %CPU   CPU  Command
12:01:13 AM     root      1167    5.88    3.92    0.00    9.80     1  kubelet
12:01:13 AM     root      9160    0.00    1.96    0.00    1.96     3  calico-node

10. 指定进程号

[root@k8s ~]# pidstat -p 130119
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/21/2023     _x86_64_    (4 CPU)

12:02:04 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:02:04 AM     0    130119    4.90    2.62    0.00    7.52     1  kube-apiserver

11. 进程关联的线程统计

复制代码
[root@k8s ~]# pidstat -p 130119 -t
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/21/2023     _x86_64_    (4 CPU)

12:02:59 AM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
12:02:59 AM     0    130119         -    4.90    2.62    0.00    7.52     1  kube-apiserver
12:02:59 AM     0         -    130119    0.00    0.00    0.00    0.00     1  |__kube-apiserver
12:02:59 AM     0         -    130147    0.12    0.60    0.00    0.72     3  |__kube-apiserver
12:02:59 AM     0         -    130148    0.00    0.00    0.00    0.00     3  |__kube-apiserver
12:02:59 AM     0         -    130149    0.00    0.00    0.00    0.00     1  |__kube-apiserver
12:02:59 AM     0         -    130151    0.00    0.00    0.00    0.00     3  |__kube-apiserver
12:02:59 AM     0         -    130152    0.00    0.00    0.00    0.00     2  |__kube-apiserver
12:02:59 AM     0         -    130158    0.00    0.00    0.00    0.00     0  |__kube-apiserver
12:02:59 AM     0         -    130167    0.00    0.00    0.00    0.00     2  |__kube-apiserver
12:02:59 AM     0         -    130168    0.00    0.00    0.00    0.00     0  |__kube-apiserver
12:02:59 AM     0         -    130578    0.73    0.38    0.00    1.12     0  |__kube-apiserver
12:02:59 AM     0         -    130579    0.00    0.00    0.00    0.00     0  |__kube-apiserver
12:02:59 AM     0         -    130580    0.74    0.39    0.00    1.13     3  |__kube-apiserver
12:02:59 AM     0         -    130581    0.64    0.33    0.00    0.98     1  |__kube-apiserver
12:02:59 AM     0         -    130582    0.74    0.39    0.00    1.13     2  |__kube-apiserver
12:02:59 AM     0         -    130583    0.76    0.40    0.00    1.16     0  |__kube-apiserver
12:02:59 AM     0         -      4715    0.39    0.22    0.00    0.61     2  |__kube-apiserver
12:02:59 AM     0         -     30163    0.45    0.22    0.00    0.67     1  |__kube-apiserver
复制代码

 

 12.其他常用相关参数

复制代码
显示详细的进程命令
[root@k8s ~]# pidstat -l 1 2
Linux 3.10.0-1160.el7.x86_64 (k8s)     10/21/2023     _x86_64_    (4 CPU)

12:04:21 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:04:22 AM     0      1167    0.98    1.96    0.00    2.94     1  /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --cgro
12:04:22 AM     0      9160    0.00    1.96    0.00    1.96     3  calico-node -felix 
12:04:22 AM     0     10262    0.98    0.00    0.00    0.98     2  /coredns -conf /etc/coredns/Corefile 

友好输出
--human
复制代码