Jboss

JBoss EAP 7,IO 子系統工作者配置

  • June 4, 2020

我在這裡問是因為我找不到太多關於這方面的資訊……

IO子系統worker配置下的“Io threads”和“Task max threads”設置的主要用途是什麼?

在我讀到的所有地方,人們都在說“Io 執行緒”指定了伺服器可以處理的並發請求數,而“任務最大執行緒數”是伺服器可以處理的最大並發請求數。

那麼這是否意味著如果我將“Io 執行緒”設置為 50,這意味著 JBoss 可以同時處理 50 個瀏覽器請求?

我有一個網站,要求能夠在 15 秒的時間內為 1500 個並髮使用者提供服務。每個請求的完成時間不應超過 3 秒。這包括下載瀏覽器需要的 html、js、css 和所有 jpg 文件。

這是否意味著我需要將“Io 執行緒”設置為更高的數字,例如 100,並將“任務最大執行緒”設置為 150?

我嘗試將“任務最大執行緒”設置為 150,甚至 250,這似乎會降低我的網站速度。

任何人都可以解釋這兩個設置是如何工作的?

您通常不需要為每個使用者連接設置單獨的 IO 執行緒。您可能在任何時候都需要與並髮使用者一樣多的任務執行緒,以避免減速。您可以嘗試預設設置,看看它們如何為您的應用程序工作。請參閱以下支持文章:

請注意,EAP 7.2 具有額外的核心執行緒配置以提高效率。

更新:如果您需要更全面的說明,最好查看完整的紅帽企業應用平台性能調整指南

更新 2:因為 EAP 7 使用的是 Undertow,要了解 IO 和工作執行緒的作用,undertow 文件應該提供一些線索:

IO和Worker執行緒的管理

XNIO worker 管理 IO 執行緒和可用於阻塞任務的執行緒池。通常,非阻塞處理程序將從 IO 執行緒中執行,而阻塞任務(如 Servlet 呼叫)將被分派到工作執行緒池。

引用自:https://serverfault.com/questions/1001177