2017-08-21 70 views
0

我使用Spring Framework開發了一個REST API。當我將它部署在RHEL上的Tomcat 8中時,與本地計算機(Windows 8.1)上的部署相比,POST和PUT請求的響應時間非常長。在RHEL服務器上需要7-9秒,而在本地計算機上,它少於200毫秒。Tomcat 8 - 在RHEL上部署POST和PUT請求時速度較慢

RHEL服務器的RAM和CPU是本地機器的4倍。 Windows和RHEL都使用默認的tomcat配置。網絡延遲被排除了,因爲GET請求與本地機器的時間差不多,而第一個字節的時間多於POST和PUT請求。

我甚至嘗試使用Visual JVM來分析遠程JVM。我的自定義代碼中沒有主要的熱點。

enter image description here

我能夠重現同樣的問題在其他的服務器RHEL。有沒有可以幫助解決這個性能問題的tomcat設置?

回答

0

您放置的概要分析日誌意味着什麼,或多或少。它顯示以下內容:

阻塞隊列被阻塞。這是正常的,因爲這是它的目的 - 阻止。這意味着沒有什麼可以從中獲得的。

它正在等待插座上的連接。這也是正常的。

您不指定什麼是RHEL 8物理/硬件設置。這裏的操作系統可能不是唯一的。您無法消除仍然存在的網絡延遲。如果你有SAN,那麼SAN本身可能會有延遲。如果您正在使用SSD驅動器,並且RHEL正在使用SAN進行復制,則可能會遇到網絡問題。

我更傾向於首先檢查磁盤上的IO,而不是專注於操作系統。如果共享服務器,則可能有其他進程佔用磁盤。

您是說延遲被排除,因爲GET請求正在同一時間。這不足以推翻它,因爲我說這是客戶端和應用程序服務器之間的延遲,它不會檢查應用程序服務器機器與SAN或磁盤之間的延遲或任何存儲。