簡體   English   中英

如何獲取在 Apache Tomcat 上運行的應用程序的 maxConnections

[英]How to get maxConnections of an application running on Apache Tomcat

我實現了一個 HttpSessionListener,它計算我們的 JSF WebApp 的活動會話。 這很好用。

有沒有辦法找出允許的連接數? 我們的 JSF-WebApp 運行在幾個具有不同設置的 tomcat 上。

我需要的是一個 java 方法,它返回環境的最大允許連接,以便在連接可能用完時能夠顯示警告。

有任何想法嗎?

非常感謝

感覺你應該在你的監控環境中配置它,例如監控 JMX。

最大連接數(與會話數完全不同)可以在 server.xml 中配置 - 檢查 maxConnections

服務器在任何給定時間將接受和處理的最大連接數。 當達到此數量時,服務器將接受但不處理另一個連接。 此附加連接將被阻止,直到正在處理的連接數低於 maxConnections,此時服務器將再次開始接受和處理新連接。 請注意,一旦達到限制,操作系統可能仍會根據 acceptCount 設置接受連接。 默認值為 8192。

僅對於 NIO/NIO2,將值設置為 -1,將禁用 maxConnections 功能,並且不會計算連接數。

您在這里看到的是,它不僅取決於 tomcat,還取決於您的操作系統。 而且,當然,在你的申請中:它可能會比那個數字更早棄牌。

我認為一個只監控連接數量而不是其他資源的系統沒有得到很好的調整:如果你發現你的最大配置連接已經飽和,但從技術上講,你可以“存活”兩倍:誰配置了它? 如果您的頁面加載時間在一半的連接下低於可接受的時間:誰在乎仍然可用的連接數?

如果一個反向代理進來,那也可能會排隊一些額外的連接......

回到你原來的問題:JMX 可能是一個解決方案(找到相關的 bean)。 或者,如果您想要 go 自制,則 servlet 過濾器可以跟蹤當前處理的請求數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM