我的生产环境速度非常低。我正在分析系统,我发现的原因是系统中的所有线程都在等待访问"共享日志编写器"在websphere环境中。可能的原因是什么。
什么是Websphere Shared Log Writer(com.ibm.ejs.ras.SharedLogWriter),它是否管理在websphere中编写的日志。以及它阻止应用程序的原因。我的应用程序也使用log4j日志,大部分日志都是用log4j日志文件写的,那么如果因为写在磁盘上有一些错误,那么它应该在log4j进程中而不是在Websphere共享日志编写器中。
可能的原因是什么?我是否因为报告错误而过多使用websphere日志文件。请提供您的反馈意见。
答案 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()