背景
线上环境的网络存在一定的延迟及丢包率,CPU的负载占用处于较高的状态下
一、设置网络延迟
查看当前网络情况:tc qdisc show dev eth0
网卡传输延迟设置为100ms,约30%的会延迟±10ms发送:
tc qdisc add dev eth0 root netem delay 100ms 10ms 30%
删除掉:
tc qdisc del dev eth0 root netem delay 100ms 10ms 30%
网卡传输设置随机丢失1%的数据包
tc qdisc add dev eth0 root netem loss 1%
删掉:
tc qdisc del dev eth0 root netem loss 1%
需要注意的是对于丢包和延时是包括请求和响应是一起的,都会产生效果,实际是作用在网卡上去完成一个模拟的情况
docker环境中可能存在没有tc命令的存在,也可以直接限制docker所在的服务器即可
二、 模拟CPU占用
touch run_cpu.sh
{{#!/bin/bash
function while_test()
{
while ((1));
do
i=2;
done
}
function run_cpu()
{
for ((i=0; i<$1; i++));
do
while_test &
done
}
run_cpu $1}}
sh run_cpu.sh 8 (这里假设当前机器是8核,这里的数值执行的时候根据cpu实际核数做调整)