2014-06-06 46 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 –