0 序言
- 近期排查性能问题,需要监控线程、CPU的情况,需使用此命令,这次来个简单小结。
1 sleep 命令
1.1 作用
- sleep命令是Linux系统中的一个非常常用的命令,它用于在终端或脚本执行的过程中让系统进行休眠等待。
- 使用sleep命令可以让程序暂停执行一定的时间,从而达到控制程序执行节奏的效果。
1.2 语法
- sleep命令语法:
sleep NUMBER[SUFFIX]
或 bin/sleep NUMBER[SUFFIX]
其中,NUMBER指的是休眠的时间,可以是整数或小数,SUFFIX则表示时间单位,默认为秒。支持的时间单位有:
- s(秒)
- m(分钟)
- h(小时)
- d(天)
1.3 示例
- 休眠5秒钟
sleep 5
bin/sleep 5
- 休眠3分钟
sleep 3m
bin/sleep 3m
- 休眠1小时
sleep 1h
bin/sleep 1h
- 休眠并输出进度条
#!/bin/bash
echo -n "Loading... "
sleep 1 &
pid=$!
while kill -0 $pid 2>/dev/null; do
echo -n "."
sleep 0.1
done
echo " Done!"
以上脚本会输出一个进度条,并在后台启动一个休眠1秒的sleep子进程,等待子进程结束后再输出“Done!”。
- 定时间隔执行
#!/bin/bash
while true; do
# do something
sleep 5m
done
以上脚本会每隔5分钟执行一次“do something”操作。
- 记录/监控 线程与CPU使用情况
为了定时去查看每条Thread CPU的使用,如每秒输出一次,使用以下Shell Script
vi cpu.sh
!/bin/sh
while [ true ]; do
/bin/sleep 1
ps -C java -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
# ps -C <process ID> -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
done
执行时:
[root@ip tmp]#chmod 755 ./cpu.sh
[root@ip tmp]#./cpu.sh
每秒输出如下
0.1 - 0 S 00:25:42 28009 28315
0.1 - 0 S 00:25:42 28009 28363
0.1 - 0 S 00:25:42 28009 28368
0.1 - 0 S 00:25:42 28009 28502
0.1 - 0 S 00:25:42 28009 28503
0.1 - 0 S 00:25:43 28009 28327
0.1 - 0 S 00:25:43 28009 28494
0.1 - 0 S 00:25:43 28009