2016-09-19 162 views
1

我正在使用Linux Apache(Apache/2.2.3 Red Hat),並且在將請求發送到服務器之前,我們不時收到需要大約5分鐘的請求。我使用Dynatrace來監視我的應用程序,並使用它可以驗證請求是在Apache服務器本身上,然後發送到WebLogic 12應用程序服務器。一旦在應用服務器上,它在毫秒內響應。Apache支持請求?

這似乎持續1-3分鐘,然後解決自己。每當發生這種情況時,我正在使用SOAP UI直接調用服務器,並且我似乎無法找到應用程序服務器本身的問題。

我使用WebLogic Apache模塊(mod_wl_22.so) 發現下列網站(Weblogic plugin config and troubleshooting),解釋了選擇非常好(道歉使用鏈接,但我不能複製整個2頁以供參考)。對於這個插件的配置,並具有以下設置:

KeepAliveEnabled Off 
MaxSkipTime 2 
ConnectTimeoutSecs 3 

我看不到在errors.log或access.log的文件的任何錯誤也是如此。

還有什麼事情,我們可以檢查調試這個插件多一點,或者嘗試,看看這些是5-13秒期間發生前的請求被轉發到應用服務器。

+0

我得到了完全相同的問題。我也得到了DynaTrace。但我懷疑這是DNS問題,因爲技術上客戶端TCP連接只有在DNS解析成功後才能建立? – bjethwan

+0

你是否能夠發現任何其他問題與您的設置或它的Dynatrace代理責怪? – bjethwan

+0

我們有幾個團隊運行不同類型的應用程序。他們的一些應用程序/ apache沒有安裝,仍然具有相同的行爲。所以我老實說不認爲DT應該在這裏被指責。更改爲在Apache配置中使用IP而不是服務器名稱似乎解決了我們80%的問題,但我們仍然有每次通話5-6秒的奇怪時間。 我們正計劃實施一個Zuul服務基礎設施,也就是說,一旦開發者發現了可以被開發者調試的東西。 – Chrispie

回答

1

我們玩過各種捲髮/命令來測試服務器的往返行程。最後,我們運行一個測試,連接到連接到端口的一行40x服務器,並記錄這些調用的開始時間。由於這只是建立了連接,回來應該是非常快的

因此,我們預計將看到:

14:49:49:1 call 1 
14:49:49:1 call 2 
14:49:49:1 call 3 
14:49:49:1 call 4 
14:49:49:1 call 5 
14:49:49:1 call 6 
14:49:49:1 call 7 
14:49:49:1 call 8 
14:49:49:1 call 9 
... 
14:49:49:1 call 40 

雖然在現實中,我們看到以下

14:49:49:1 call 1 
14:49:50:5 call 2 --> took more than second 
14:49:50:5 call 3 
14:49:50:5 call 4 
14:49:50:5 call 5 
14:49:50:5 call 6 
14:49:52:8 call 7 --> took more than 2 seconds 
14:49:52:8 call 8 
14:49:52:8 call 9 
... 
14:49:52:8 call 40 

每隔調用了在1到5秒之間。從應用的角度來看,沒有任何錯誤。看起來像DNS解析是一個問題。我們運行了相同的測試,但沒有連接到myServer:9999,我們立即使用了123.456.789.123:9999。