使用JBoss的AccessLogValve记录请求会对性能产生什么影响?

时间:2012-02-22 13:10:52

标签: logging jboss

简短的问题是,使用AccessLogValve而不是FastCommonAccessLogValve是否存在确定的,可量化的开销?

如果我在JBoss 4.2.3GA中启用访问日志记录,我可以使用FastCommonAccessLogValve或AccessLogValve(如http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html中所述)。 FastCommonAccessLogValve针对生产使用进行了优化,但不允许我记录请求处理的时间,这是我追求的关键信息。

我已经运行了一些比较负载测试,将我的应用程序置于轻负载下,因此AccessLogValve的开销不会被服务器负载导致的更长处理时间隐藏。但是,与FastCommonAccessLogValve或没有日志记录相比,AccessLogValve的任何开销都小于我从应用程序本身获得的变化。例如,与没有记录阀的基准测试相比,我得到的测试平均占99.7%(启用AccessLogValve),103.4%的时间(启用AccessLogValve的另一次运行),或105.4%的时间(启用FastCommonAccessLogValve。

这一系列结果是否表明开销约为5%?或者我是否需要花时间让我的负载测试产生更加一致的时序而不启用日志记录?这是一个复杂的应用程序,所以我不确定这是否可行

1 个答案:

答案 0 :(得分:1)

我认为您通过尝试对应用程序进行基准测试来做正确的事情。了解性能影响的唯一方法是使用和不使用AccessLogValve进行基准测试。

AccessLogValve的开发人员已经竭尽全力优化阀门的性能,至少在最常见的模式下性能可以忽略不计(在我的测试中为1-3%)。

尽管如此,如果不做那些基准测试,确实很难说。

希望这有用。

祝你好运!