【linux实战2】测试工程师实战课程之三剑实战linux性能统计分析

安装

sudo apt install sysstat

uptime

开机时间:

  • 17:03:39 up 117 days, 19:19, 16 users, load average: 0.52, 1.26, 0.97
  • 正在或准备运行在CPU上的进程+阻塞在uninterruptible I/O(通常是磁盘I/O)上的进程
  • 1分钟、5分钟、15分钟系统负载的移动平均值,它们共同展现了负载随时间变动的情况

dmesg | tail

打印系统日志信息
使用tail可以进行筛选

  • tail -20 : 筛选出尾20条信息
  • head -20:筛选出头20条信息

vmstat 1

virtual memomery state

显示虚拟内存

mpstat -P ALL 1

  • multi process state
  • 多核cpu的状态


pidstat 1

iostat -1

  • 一切皆是文件,在/dev下

  • /dev/hd[a-t]:IDE设备

  • /dev/sd[a-z]:SCSI设备

  • /dev/fd[0-7]:标准软驱

  • /dev/md[0-31]:软raid设备

  • /dev/loop[0-7]:本地回环设备

  • /dev/ram[0-15]:内存

  • /dev/null:无限数据接收设备,相当于黑洞

  • /dev/zero:无限零资源

  • /dev/tty[0-63]:虚拟终端

  • /dev/ttyS[0-3]:串口

  • /dev/lp[0-3]:并口

  • /dev/console:控制台

  • /dev/fb[0-31]:framebuffer

  • /dev/cdrom => /dev/hdc

  • /dev/modem => /dev/ttyS[0-9]

  • /dev/pilot => /dev/ttyS[0-9]

  • /dev/random:随机数设备

  • /dev/urandom:随机数设备

free -m

top

查看进程的状态,实时更新,会覆盖之前的内容
top -d 1 -n 20 :执行20次,每次间隔1s

作业

查看命令的pid:ps -ef | grep chrome

  1. 使用三剑客提取指定pid的进程的cpu数据
ps -ef | grep systemd

top -p 1 -n 1 | grep systemd | awk '{print $10}'
  1. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
for i in {1..20};do top -p 1 -n 1 | grep systemd | awk '{print $10}';sleep 3s;done

for((i=0;i<20;i++));do top -p 1 -n 1 | grep systemd | awk '{print $10}';sleep 1s;done


  1. 使用三剑客提取指定pid的进程的cpu数据
    top -d 1 -n 20 -p 1 |awk ‘{print $11}’
  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for i in $(seq 1 20); do top -d 1 -n 1 -p 1 |awk ‘{print $11}’;sleep 1; done
  1. 使用三剑客提取指定pid的进程的cpu数据
    top -n 1 | awk ‘{print$2,$11}’ |grep -E “\b[1]\b” |awk ‘{print$2}’
  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for i in $(seq 1 20); do top -n 1 | awk ‘{print$2,$11}’ |grep -E “\b[1]\b” |awk ‘{print$2}’ ;sleep 1; done
1 个赞

打印pid
ps -ef|grep chrome

1、 使用三剑客提取指定pid的进程的cpu数据

top -d 1 -n 1 -p 1979 | awk 'NR==8{print $10}'

2、 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)

for i in $(seq 1 20);do top -d 1 -n 1 -p 1979|awk 'NR==8{print $10}';sleep 1;done

  1. 使用三剑客提取指定pid的进程的cpu数据

    动态显示:top -b -p14130 | awk ‘{if($1==14130) print “cpu:”$10}’
    静态显示:top -n 1 -p14130 | grep 14130 | awk ‘{print “cpu:” $10}’

  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for i in {1…20}; do top -n 1 -p14130 | grep 14130 | awk ‘{print “cpu:” $10}’;sleep 1;done

1.使用三剑客提取指定pid的进程的cpu数据
top -n 1 -p 14130 | awk ‘{print $10}’| awk ‘BEGIN{ RS= “\n\n” }{if($1=="%CPU")print $2}’
Step1:
image
Step2:

2.使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s.
for ((i=1; i<=20; i++ ));do top -n 1 -p 14130 | awk ‘{print $10}’| awk 'BEGIN{ RS= “\n\n” }{if($1=="%CPU")print $2}'sleep1;done

1.pidstat -p 28424 1 1 | awk ‘{print $8}’
2.这个编辑器怎么总把符合转丢呢…
for ((i=1;i<=20;i++))
do
echo “$i:`pidstat -p 28424 1 1 | awk ‘{print $8}’`”
sleep 1
done

markdown有代码的格式

  1. 使用三剑客提取指定 pid 的进程的 cpu 数据
ps -ef | grep chrome
top -p 17571 | awk '{print $10}'
  1. 使用三剑客提取指定 pid 的进程的 cpu 数据,打印 20 次,间隔 1s( for 循环来做)
for i in {1..20}
do
    top -p 17571 | awk '{print $10}'
    sleep 1
done

ps -ef | grep chrome pid为32749
image

1.使用三剑客提取指定pid的进程的cpu数据
top -n 1 -p 32749 | grep 32749 | awk ‘{print"%CPU:" $10}’
image
image

2.使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
for i in {1…20};do top -n 1 -p 32749 | grep 32749 | awk ‘{print"%CPU:" $10}’;sleep 1;done

1、 使用三剑客提取指定pid的进程的cpu数据

top -n 1 -p 1 |grep -A 1 PID|awk '{print $10}'|sed ':1;N;s/\n/: /;b 1'

# 其实只有两行,sed不需要tag也是一样的
top -n 1 -p 1 |grep -A 1 PID|awk '{print $10}'|sed 'N;s/\n/: /'

2、for循环打印20次

for i in {1..20}; do
    top -n 1 -p 1 |grep -A 1 PID|awk '{print $10}'|sed ':1;N;s/\n/: /;b 1'
    sleep 1
done

image

1、使用三剑客提取指定pid的进程的cpu数据
top -n 1 -p 1 |awk ‘NR==8{print $10}’
image
2.使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
for ((i=0;i<20;i++));do top -n 1 -p 1 |awk ‘NR==8{print $10}’;sleep 1;done

查询chrome的进程为:2489

  1. 使用三剑客提取指定pid的进程的cpu数据
    top -n 20 -d 1 -p 103 |awk ‘NR==8{print $10}’
    image
  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for i in {1 20};do top -n 1 -p 126 |awk ‘NR==8{print $10}’;sleep 1;done

了解

Thank you !

  1. 使用三剑客提取指定pid的进程的cpu数据
    top -d 2 -n 3 -p 1 | awk ‘NR>5’ | awk ‘$2==1{print $10}’

  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for i in {1…20};do top -d 1 -n 1 -p 1 | awk ‘NR>5’ | awk ‘$2==1{print $10}’;done

1、top -n 1 -p 535 | awk ‘NR==8 {print $11}’
2、for ((i=1; i<=20; i++)); do top -n 1 -p 535 | awk ‘NR==8 {print $11}’;sleep 1 ;done

pidstat | awk '/1113/{ print $9 }'


for i in $(seq 1 20);do pidstat | awk '/1113/{ print $9}';sleep 1;done

1、top -d 1 -n 20 -p 10|awk ‘NR==8{print $10}’
QQ截图20200314002047
2、for i in {1…20}
> do
> top -d 1 -n 20 -p 10|awk ‘NR==8{print $10}’
> sleep 1
> done
QQ截图20200314003747

作业1:
top -n 1 -p 1|grep systemd|awk ‘{print "systemd的%CPU: "$10}’

作业2:
for i in {1..20};do echo $(top -d 1 -n 1 -p 1|grep systemd|awk ‘{print "systemd的%CPU: "$10}’);sleep 1;done

  1. 使用三剑客提取指定pid的进程的cpu数据
    top -p ps -ef|grep dockerd|grep -v grep|awk '{print $2}' -n 1|awk ‘NR==8{print $10}’

  2. 使用三剑客提取指定pid的进程的cpu数据,打印20次,间隔1s(for循环来做)
    for cycle in {1…20};do top -p ps -ef|grep dockerd|grep -v grep|awk '{print $2}' -n 1|awk ‘NR==8{print $10}’;sleep 1s;done