【问题标题】:Tomcat 7 access log vs tomcat log difference in timeTomcat 7 访问日志与 Tomcat 日志的时间差异
【发布时间】:2017-11-25 23:37:28
【问题描述】:

我在生产云服务器中遇到了一个奇怪的问题。

我有一个服务器 java 方法(REST 服务方法),它在方法的第一行和最后一行登录。

问题是访问日志中的方法调用显示的延迟是 tomcat 日志中存在的时间差的 10 倍。

例如,tomcat 日志显示方法在 1 秒内执行,而访问日志显示 13+ 秒。在浏览器的网络选项卡中观察到相同的延迟。

有什么方法可以理解延迟?我检查了服务器磁盘状态,它显示使用率为 20% 到 30%。内存使用率最高达到 80%,CPU 也很好。

根据访问日志,间歇性延迟的原因是什么?

【问题讨论】:

    标签: java angularjs rest tomcat7


    【解决方案1】:

    访问日志由tomcat服务器以块的形式推送到日志文件中。在处理请求时不会记录它们。 Tomcat 这样做是为了最小化文件 I/O。

    正常日志在您记录日志文件时写入日志文件的位置。

    【讨论】:

    • 这没有回答问题,如果方法执行完成,为什么访问日志显示延迟? (虽然access log写得比较晚,但是log的时间分量和tomcat log的延时不同)
    • @amitmah:这是问题的答案。这是tomcat的行为。缓存访问日志,缓存满后推送到日志文件stackoverflow.com/questions/31109090/…
    • 无论你指定什么模式都没有关系。 Tomcat 默认有这种行为。您可以按照上述 URL 中的说明修改这些设置(在我的上述评论之一中提到)
    • 是的,按照你的解释应该是5000
    • 不,不是,根据我在访问日志中看到 13000 的日志,并且来自 tomcat-log 文件的 SS 组件显示 1 秒延迟
    猜你喜欢
    • 2016-04-30
    • 2011-11-27
    • 2018-01-14
    • 2014-06-29
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 2020-08-21
    • 2020-05-22
    相关资源
    最近更新 更多