Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3665555
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2020-08-25 14:56:22

[root@localhost /]# cat a.sh
while :
do
echo 2^2^20|bc &>/dev/null
done
[root@localhost /]#



for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done


说明:

cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.

seq 1 N 用来生成1到N之间的数字

for i in `seq 1 N`; 就是循环执行命令,从1到N

dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU, 没有IO操作.

由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每个dd命令在不同的CPU上处理.

最终就实现所有CPU占用率100%


另外,上述程序的结束可以使用:

1. fg 后按 ctrl + C (因为该命令是放在后台执行)

2. pkill -9 dd

  • makeLoveCPU.sh
# makeLoveCPU.sh #! /bin/sh # filename killcpu.sh for i in `seq $1` do echo -ne "
i=0;
while true
do
i=i+1;
done" | /bin/sh &
 pid_array[$i]=$! ; done for i in "${pid_array[@]}"; do echo 'kill ' $i ';'; done 
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • highCPU.sh
while true; do sh makeLoveCPU.sh $1 ; sleep 2; done


阅读(1207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~