如何减小大量写log对性能测试的影响
来源:互联网 发布:python 去除图片水印 编辑:程序博客网 时间:2024/05/20 15:59
当前定义的性能测试介入点,是功能测试第一轮结束之后。而第一轮功能测试主要目的是发现bug,此时介入可能会该性能测试带来一些不必要的麻烦。
最常见的问题,就是页面vm存在bug。当页面被大量访问时,velocity log里每次都打印出vm的错误日志。假定每条日志为200bytes,每秒的访问量为30,一秒的日志量就为200*30=6,000bytes。约为5.86K。以这样的速度计算,一分钟就会达到351.6K。随着时间的推移,日志量是相当可怕的。如果vm上有多处错误,日志量将更加恐怖。
模版的bug是功能问题,本身是不会影响系统性能的。但是当log达到一定量之后,比如单个文件1G,影响的效果就比较明显了。为了这么大的文件再继续往里写,是会消耗服务器资源的。
怎么办?
方法有两个:第一、屏蔽velocity log;第二、不屏蔽,利用技术手段定时删除velocity log。下面分别介绍一下。
一、屏蔽velocity log
最干脆的办法。屏蔽之后该log就不再打印了,但需要系统开发人员的配合。
二、不屏蔽,利用crontab定时删除velocity log
第一种方法固然很好,但需要外部人员配合,而且如果该vm的bug是由于压力引起,不打印日志就没办法看到错误了。
crontab是一个很方便的在linux上定时循环执行某个任务的程序。利用它,可以定时将velocity log置空,将其控制在一定大小范围内。
先写一个置空log的shell脚本,然后再通过crontab调用,每隔5分钟执行一次。示例脚本如下:
***********************************************
cleanLog.sh –放置在/home/admin目录下
echo “” > Path/appName-velocity.log — Path为该应用的log路径,appName为该应用的应用名
***********************************************
crontab –admin的crontab
*/5 * * * * sh /home/admin/cleanLog.sh –实现每5分钟执行一次cleanLog.sh脚本
***********************************************
这两种方式都能有效的减小大量/超大量log对性能测试结果的影响。当然也各有利弊,请酌情使用。
除了vm的bug会大量记录错误日志外,apache的访问日志有时候也是非常非常恐怖的。如果你想减小影响,不妨也试试上述两种方法。
- 如何减小大量写log对性能测试的影响
- 性能测试、操作系统优化对性能测试的影响,以及如何优化操作系统
- Session对性能测试的影响
- Session对性能测试的影响
- 测试IDServer的性能以及加锁对性能的影响
- GraphicsMagick性能测试(二) - 开启多线程对性能的影响
- 性能测试机中存在大量的TIME_WAIT状态的连接,影响并发压力的发起
- 性能测试机中存在大量的TIME_WAIT状态的连接,影响并发压力的发起
- 测试SQLPLUS的ARRAYSIZE对性能的影响
- [原创]Apache Rewrite对apache性能影响的测试
- [原创]Apache Rewrite对apache性能影响的测试
- [原创]Apache Rewrite对apache性能影响的测试
- CUFFT中FFT点数对FFT性能的影响测试
- CPU超频与电源设置对性能测试的影响
- 润乾集算报表层次数据集对性能的影响测试
- CUFFT中FFT点数对FFT性能的影响测试
- 关于SQLite索引对写入性能影响的测试
- sysbench工具测试query cache对性能的影响
- 让人受益非浅的一些话
- 遊戲編程flash.utils.Timer
- Hibernate的cascade解释
- Java Web 开发中文件的上传与下载(FTP/HTTP)
- 敏捷开发与单元测试
- 如何减小大量写log对性能测试的影响
- How To Use GSM Compression in Low-level Wave Recording.
- 学JFreeChart不得不看的中文API
- 三年总结
- 简单学习PHP向MYSQL中插入数据的代码
- 利用关联关系操作对象
- js设为首页
- B2B,B2C,C2C,C2B务之间的区
- 入门:PHP与MYSQL的结合操作