Websphere共享日志编写器(com.ibm.ejs.ras.SharedLogWriter)

时间:2014-06-06 14:09:31

标签: websphere

我的生产环境速度非常低。我正在分析系统,我发现的原因是系统中的所有线程都在等待访问"共享日志编写器"在websphere环境中。可能的原因是什么。

什么是Websphere Shared Log Writer(com.ibm.ejs.ras.SharedLogWriter),它是否管理在websphere中编写的日志。以及它阻止应用程序的原因。我的应用程序也使用log4j日志,大部分日志都是用log4j日志文件写的,那么如果因为写在磁盘上有一些错误,那么它应该在log4j进程中而不是在Websphere共享日志编写器中。

可能的原因是什么?我是否因为报告错误而过多使用websphere日志文件。请提供您的反馈意见。

1 个答案:

答案 0 :(得分:2)

您可能会将太多数据记录到日志中,但它也可能是由不同进程之间的i / o操作同步引入的延迟。顾名思义,它是一个共享的日志编写器。使用WAS ND时,同一节点(配置文件)的多个进程会写入同一文件,因此需要进行同步。

在管理术语中,此文件称为“服务日志”,默认情况下位于$ {LOG_ROOT} /activity.log中。

在大多数情况下,您并不真正需要该日志,您可以将其禁用而不会产生严重后果。

可以通过以下方式禁用服务日志:http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/ttrb_cfgsvclog.html

您可以使用wsadmin脚本全局为您的单元格执行此操作。

在wsadmin / jython中:

for sl in AdminConfig.getid('/ServiceLog:/').splitlines():
    AdminConfig.modify(sl, [['enabled', 'false']])
AdminConfig.save()

广告模式

如果我没有利用这个机会来宣传WDR库,那么我就不会是我自己,这极大地提高了WebSphere脚本的可读性和可维护性。因此,对于WDR,脚本将如下所示:

for sl in getid('/ServiceLog:/'):
    sl.enabled = 0
save()
sync()