guoxilin
作者guoxilin·2021-06-29 10:40
高级非功能测试专家·某科技公司

混沌工程实践指南——文件句柄满载

字数 1032阅读 5123评论 0赞 0

一、测试目的及背景说明
在linux里头“一切皆文件”,所以虽然提示“文件”打开太多,其实也有可能是socket打开太多或者设备打开太多 ,linux在文件句柄的数目有限制;数量限制针对系统级别和用户级别。默认情况下每个用户所能使用的句柄数是1024。一般情况下1024也够用了,但是在大容量的系统上,特别是会频繁使用网络通信和文件IO的系统上,1024可能不够。因此文件句柄耗尽极端异常是一个比较常见的异常;此测试目的模拟在出现服务器文件句柄耗尽(Too Many Open Files)故障后,对业务连续性的影响,系统稳定性和可恢复性以及应急处理能力
主要达到以下目的:
( 1 )验证了各个业务系统在指定故障场景下的稳定性和可恢复性。
( 2 )验证监控和告警的有效性以及指标是否全面 。
( 3 ) 故障突袭,提升相关人员定位,故障问题的能力 。

二、测试步骤步骤描述:
1、查看空闲状态下的打开文件描述符数量
cd /proc/{pid};ls fd/wc

2、发起背景压力,查看打开文件描述符数量,修改/etc/security/limits.conf配置,加入

Weblogic soft nofile {限制数量}
Weblogic hard nofile {限制数量}

3、重启应用节点

故障注入指令说明:
1、echo “weblogic soft nofile 600”>> /etc/security/limits.conf

  echo “weblogic hard nofile 600”>> /etc/security/limits.conf
   su – weblogic  -c “ulimit -n”

2、查看打开文件描述符数量
lsof –u weblogic |wc
3、查看日志发现提示“too many open files”异常

三、整体故障表现:
1、故障注入期间交易失败率7.9%,登录和xx交易与故障强相关。
2、故障影响时长与故障注入时长一致
3、故障节点能自动隔离
4、故障解除后恢复时长快速恢复,恢复程度100%

四、故障影响评估:
1、影响范围主要为渠道类系统
2、故障严重等级中
3、故障发生概率评估;比较易出现

五、针对性优化建议:
1.linux句柄数合理配置
2.使用线程池和连接池,避免进程句柄 耗光数 ,进程崩溃。
3.用到HttpClient,尽量也应该使用连接池来控制连接数。
4.超时时间合理设置;满足漏斗原则。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

X社区推广