2014-06-06 44 views
1

我在生产环境中遇到速度很慢。我正在分析系统,我发现的原因是系统中的所有线程都在等待websphere环境中的“共享日志编写器”。这可能是什么原因。Websphere共享日志写入器(com.ibm.ejs.ras.SharedLogWriter)

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

这有什么可能的原因。我是否太多地使用websphere日志文件来报告错误。请向我提供您的反馈。

回答

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() 
+0

谢谢你的答案。你能告诉我什么信息记录在websphere的Activity.log中,它是否太高并且放慢我的系统。系统生产能力很好。它只会像500个用户一样在高容量时减速等等。还有其他日志,如SystemOut.log和SystemErr.log。它们不是同一个Websphere共享日志写入器的一部分吗?请提供您的想法。 – user3647434

+0

还有一个信息要共享,所有这些日志都不是版本化的,就像所有日志都记录在一个文件中一样。而我的log4j日志文件,我每小时版本。每隔一小时之后创建一个新文件。如果文件大小越来越大,这会有什么影响。 – user3647434

+0

activity.log是一个二进制文件。您需要使用专门的工具来查看它。对于WAS 8.5,您可以使用showlog。 命令,对于其他需要使用Application Server Toolkit中的“日志和跟踪分析器”的版本。查看更多信息:http://www-01.ibm.com/support/knowledgecenter/api/content/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/ttrb_viewsvclog.html –