背景
线上环境的网络存在一定的延迟及丢包率,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实际核数做调整)
本文介绍了如何通过tc命令模拟网络延迟和丢包,以及使用shell脚本来模拟CPU高负载占用情况。这些工具和方法在测试线上环境的性能和稳定性时非常有用,可以用于验证应用程序在恶劣网络条件和资源紧张情况下的行为。
3844

被折叠的 条评论
为什么被折叠?



