`
teamojiao
  • 浏览: 350302 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何减小大量写log对性能测试的影响

阅读更多

当前定义的性能测试介入点,是功能测试第一轮结束之后。而第一轮功能测试主要目的是发现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的访问日志有时候也是非常非常恐怖的。如果你想减小影响,不妨也试试上述两种方法。

分享到:
评论

相关推荐

    log4j2 demo 性能测试

    《深入理解Log4j2 Demo性能测试:探索异步日志的魅力》 在软件开发过程中,日志记录是一项至关重要的任务,它可以帮助开发者追踪程序运行状态、定位问题以及进行性能优化。Log4j2作为Java领域广泛使用的日志框架,...

    Log4j2异步写日志效率测试源码

    本文主要探讨Log4j2异步写日志的效率,通过源码分析和测试来展示其优势。首先,我们要理解Log4j2中的异步日志工作原理。默认情况下,Log4j2使用同步模式记录日志,即每个日志事件都会阻塞直到写入完成。然而,通过...

    NLogger与log4net 写日志性能

    比如,可以利用日志框架的缓冲机制来减少磁盘I/O次数,或者根据日志级别动态控制写入,避免在生产环境中无谓地记录过多的信息,影响性能。 综上所述,NLogger和log4net各有优势,选择哪一款取决于具体项目的需求和...

    Log4j2简介及与Log4j效率对比

    - **异步日志处理**:Log4j2通过其异步日志处理机制,能够显著减少日志记录对应用性能的影响。特别是在高并发场景下,这种优势更为明显。 - **内存占用**:Log4j2在内存使用方面也表现出色,尤其是在开启异步模式...

    (转)Log4j的AsyncAppender能否提升性能

    "LOG4J异步性能测试结果.xls"可能是博主分享的测试数据,包含了不同配置下AsyncAppender的性能指标。通常,这样的测试会涉及不同日志级别、队列大小、线程池大小等因素,以分析它们对性能的影响。 对于开发人员来说...

    redis 性能测试(读写)

    这里的"redis 写的操作性能测试代码"主要涉及如何使用 Jedis 客户端来测试 Redis 的写入性能。以下是一些相关的知识点: 1. **Redis 写操作**: - `SET` 命令:基本的设置键值对操作,例如 `set("key", "value")`...

    Log4j2效率测试源码

    - **性能测试类**:测试源码通常包括一个或多个测试类,这些类模拟了大量日志记录,以测量不同场景下Log4j2的性能。 3. **测试指标** - **吞吐量**:测试源码可能会计算在一定时间内能够处理的日志条数,以评估...

    LoG_GPU-log.zip_GPU opencv_LOG c_log_边缘检测 CUDA

    在本例中,CUDA被用来加速LoG滤波器的计算,使得边缘检测过程更快,这对于处理大量或者高分辨率的图像尤其有益。 OpenCV是一个开源的计算机视觉库,包含了众多的图像处理和计算机视觉功能。在这个程序中,OpenCV...

    loadrunner性能测试报告范例

    1. **使用LoadRunner作为测试工具**:LoadRunner是一款业界广泛使用的性能测试工具,能够模拟大量用户并发访问,从而评估系统的性能表现。 2. **使用分布式压测机测试**:采用多台机器进行压力测试,模拟真实环境下...

    Log.isLoggable之一正确的使用姿势

    总之,`Log.isLoggable`是Android开发中控制日志输出的有效工具,它可以帮助开发者在不影响性能的前提下,灵活地管理和调试日志信息。通过理解其工作原理和合理运用,可以提升开发效率并保护用户隐私。在测试样例`...

    写的ssh+log4j的Simple

    综上所述,"写的ssh+log4j+分页的Simple"可能是一个简单的Java Web项目示例,它演示了如何集成SSH框架进行应用开发,利用Log4j进行日志管理,以及实现了分页功能。这个项目可以帮助初学者理解如何在实际项目中整合...

    elearning性能测试总结报告

    本文将对一份eLearning性能测试总结报告进行深度解析,涵盖项目背景、调优过程、问题积累及解决方案,旨在提供一份详实的性能测试与优化指南。 ### 项目概况 #### 项目名称:eLearning 该项目专注于eLearning平台...

    单片机常用LOG打印模块

    同时,当系统资源有限时,通过文件存储日志可以避免对实时运行的影响。 日志信息包含了时间戳和log id,这是非常重要的功能。时间戳让开发者能精确地知道某个事件发生的时间,有助于重现问题场景。log id则可以区分...

    log4j入门详解

    - **避免过度日志**:过多的日志输出会占用大量磁盘空间,甚至影响应用程序性能。 - **日志级别管理**:合理设置日志级别有助于减少不必要的日志输出。 - **资源管理**:确保关闭所有打开的资源,如文件流等。 ####...

    LOG与Canny边缘检测比较.docx

    根据提供的文件信息,本文将对“LOG与Canny边缘检测比较”这一主题进行深入探讨,旨在解析两种不同的边缘检测算法——拉普拉斯高斯(Laplacian of Gaussian,简称LOG)与Canny边缘检测算法的基本原理、实现过程及其...

    apache-log4j-2.3-bin和commons-logging-1.2

    1. **性能优化**:Log4j 2.3 在日志记录速度上进行了优化,能够更高效地处理大量日志数据。 2. **配置灵活性**:支持XML、JSON、YAML以及Java API等多种配置方式,方便开发者根据项目需求进行选择。 3. **动态配置**...

    提高数据库性能,提高oracle数据库性能,PCIE FLASH

    此外,有许多工具可以帮助我们进行性能测试、监控和调优,如Oracle的SQL Developer、SQL*Plus、Toad,以及第三方工具如SQL Profiler、Grafana、Prometheus等。 在提供的压缩包中,"用Java脚本模拟系统业务测试数据....

    log4net扩展类

    在软件开发过程中,日志记录是一项至关重要的任务,它能够帮助开发者追踪程序运行状态、定位问题和优化性能。log4net是.NET框架下广泛使用的日志记录工具,其强大的功能和灵活性深受开发者喜爱。本文将详细介绍如何...

    vc++ c++ mfc 日志 log 记录

    - 对于大量日志,可能需要压缩存储,减少磁盘占用。 通过以上步骤,我们可以构建一个高效、灵活且实用的日志系统,为VC++、C++和MFC应用程序的开发和维护提供有力支持。在实际应用中,根据项目需求和团队规范调整...

Global site tag (gtag.js) - Google Analytics