如果當前執行緒數還沒有達到maxthread,則建立乙個執行緒去執行任務如果已經達到了maxthread,但是等待列隊中的任務還沒有達到accpetcount,則將請求放入等待佇列中,直到有執行緒空閒下來如果執行緒數達到了maxthread並且等待佇列已滿,則拒絕請求
從極端及的角度來說,乙個cpu同一時間只能執行乙個執行緒的任務,單cpu多執行緒只是計算機給我們開的玩笑。
一般來說,伺服器的瓶頸主要有兩種:
從這兩個角度來分析maxthread應該如何設定:
如果不考慮io,也就是說伺服器很少去做磁碟操作或者網路請求,那maxthread設定為與cpu數目同等的大小是最合適的,因為沒有io等待時間,cpu利用率百分百,執行緒與cpu數量一致,可以消除執行緒上下文切換帶來的消耗
總結
本文只是從理論的角度討論了maxthread執行緒的憑據,如果cpu密集型的服務,設定執行緒數不宜多;如果是io密集型,適當地上調執行緒數可以增加吞吐量
歡迎討論
tomcat最大執行緒數 最大等待數和最大連線數
tomcat是目前較為常用的web容器,那麼怎麼配置tomcat才能使得自己的服務效率更高,今天我主要解釋一下tomcat的最大執行緒數 maxthreads 最大等待數 acceptcount 和最大連線數 maxconnections maxthreads 最大執行緒數 每一次http請求到達w...
tomcat最大執行緒數 最大等待數和最大連線數
tomcat是目前較為常用的web容器,那麼怎麼配置tomcat才能使得自己的服務效率更高,今天我主要解釋一下tomcat的最大執行緒數 maxthreads 最大等待數 acceptcount 和最大連線數 maxconnections maxthreads 最大執行緒數 每一次http請求到達w...
Linux最大執行緒數限制
開始以為是記憶體不足導致無法建立執行緒,把jvm的 xms,xmx的2個引數都加大一倍 xms2048m xmx2048m。把 xss引數調小,還是啟動失敗。應該是系統方面的限制了,這台機器上搞了100個過tomcat程序,還有不少其他軟體,東西比較多且雜。確認過機器的記憶體還是足夠的,先排查系統引...