前言
CPU异常
CPU高负载
通过模拟CPU高负载,观察在CPU资源被抢占的情况,系统的运行情况。
实现方式:编译运行以下源码,即可简单实现单核跑满:
#include
int main(){
while(1);
return 0;
}
每次运行会占满一个核心,如果需要模拟多核跑满,多次运行即可。通过kill命令杀死进程结束模拟。
模拟CPU高负载的方式实际上还有很多,很多工具也都实现类似的功能,这里推荐一个PassMark提供的专业拷机软件:BurnInTest,有兴趣的可以尝试:(https://www.passmark.com/products/bitlinux.htm)
内存异常
内存繁忙
针对内存的异常测试,主要方式是通过模拟内存频繁申请/释放,观察内存高负载情况下系统的运行情况。内存异常测试推荐使用memtester(http://pyropus.ca/software/memtester)
使用方式:
$ memtester [测试内存量] [测试次数]
例如
$memtester 4G 20
模拟20次的内存申请/释放,每次测试内存使用量为4G。
磁盘异常
磁盘空间不足
Linux系统提供了一个块拷贝命令——dd,可以非常方便的满足我们的测试需求,使用方式:
$dd if=/dev/zero of=[目标路径] bs=[文件块大小] count=[文件块数目]
磁盘I/O繁忙
结合shell脚本和上述dd命令,反复生成/删除文件,即可简单的模拟磁盘I/O繁忙的情况。
此外,也可以通过磁盘类的性能测试工具实现I/O负载的生成。FIO是一个测试系统IOPS的工具,根据指定的参数模拟IO负载,在磁盘类的性能测试中有广泛的运用。在这里,我们可以用FIO来模拟I/O繁忙,ks中已经有同学对FIO做了详细的介绍(http://ks.netease.com/blogd=281),这里就不再赘述。
络异常
在 络方面,主要有带宽跑满、 络延迟、 络丢包等异常情况。Linux系统提供了很多工具,可以方便我们实现模拟 络异常,这里选择netperf和tc来实现异常生成。
带宽跑满
netperf是 络带宽测试的工具,可以测量两个机器之间的 络带宽,我们可以使用netperf来模拟跑满节点 络带宽的情况。由于netperf为C/S运行模式,需要分别部署服务端和客户端,所以理论上至少需要2台机器,且受限于各自的上下行带宽限制。
实现方式:
服务端:
$netserver
客户端:
$ netperf -H [服务端IP] -l [测试时长(秒)]
络延迟和 络丢包
tc全称traffic control,是linux中的流量控制模块,通过设置tc,可以很方便的模拟 络延迟和 络丢包:
络延迟:
$ tc qdisc add dev [ 络设备名] root netem delay [延迟时间]
络丢包:
$ tc qdisc add dev [ 络设备名] root netem loss [丢包率]
将上述命令中的add改为del即可清除异常。
由于tc命令相对复杂,在此安利一下性能组同学开发的一款脚本:easy_traffic,将tc中用以模拟 络异常的功能简化了很多,只需要提供几个简单的参数即可实现 络延迟、 络丢包、 络带宽限制。
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24749 人正在系统学习中 相关资源:暗组苹果找回助手(找回丢失Iphone手机)v1.0中文绿色版-其它代码类…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!