2015-04-24 44 views
0

我們在兩臺服務器上運行相同的Jetty服務,但看到兩個服務創建的線程數量不同(50 VS 100線程)。相同的碼頭代碼,不同數量的線程

兩臺服務器在RedHat5上都運行相同的Java代碼(它們的內核略有不同)。然而,其中一臺服務器上的Jetty比另一臺創建更多的線程。這怎麼可能?

+0

不要以爲沒有一點上下文就能得到很好的答案;你能否顯示有問題的代碼? –

回答

1

線程數是動態的,取決於許多因素。

根據硬件差異(CPU核心數量,網絡接口數量等),內核差異,Java差異,負載差異,活動用戶數量等,您在任意一點看到的線程數量可能會有很大差異。活動連接數,每秒事務數,如果有外部依賴關係(如數據庫),異步處理如何完成,異步I/O如何完成,使用http/2 vs http/1,使用websocket,甚至$ { jetty.base}配置差異。

至於你看到的數量,50對100,這是肯定的微小爲生產服務器。中等繁忙系統上的許多生產服務器可以使用500(java)線程,而在非常繁忙的商品系統上,其可以處於5,000+範圍內。即使在專用硬件上(例如Azul系統設備),在具有多個活動網絡接口的90,000多個線程範圍內也不是聞所未聞的。

相關問題