并發(fā)量的優(yōu)化主要是兩個(gè)隊列和處理Thread數:
1、OS控制的TCP隊列:存放操作系統已經(jīng)接受,而Weblogic還沒(méi)有接受的Socket;
2、Weblogic默認的Request隊列:存放Weblogic已經(jīng)接受,但是WebContainer還沒(méi)有處理的Request;
3、Thread數量:Weblogic處理線(xiàn)程,和CPU數量及業(yè)務(wù)邏輯相關(guān)。
如果用戶(hù)并發(fā)量很大,由于WebContainer的處理能力有限,會(huì )產(chǎn)生以下結果:
1、OS的Tcp隊列滿(mǎn),用戶(hù)的請求被拒絕,這時(shí)還沒(méi)有到達Weblogic,所以Weblogic日志中沒(méi)有任何記錄;
2、OS的Tcp隊列未滿(mǎn),這時(shí)用戶(hù)的請求將會(huì )進(jìn)入Tcp隊列:
1)Weblogic處理忙,來(lái)不及接受Socket,導致連接超時(shí),這時(shí)Weblogic日志中同樣沒(méi)有任何記錄;
2)Socket連接被Weblogic接受進(jìn)入Request隊列;
3、Request隊列由Thread處理,OS調度Thread,處理Request請求:
1)Request請求仍然在隊列中,達到超時(shí)時(shí)間,連接中斷,Weblogic日志中會(huì )記錄錯誤信息;
2)Thread接受Request,進(jìn)入OS的Thread調度隊列;
4、Thread隊列;
1)OS繁忙,隊列中的部分Thread會(huì )超時(shí)中斷,這時(shí)Weblogic日志中會(huì )記錄錯誤信息;
2)Thread數量少,OS空閑多。
所以,優(yōu)化并發(fā)量,需要遵循下列步驟:
1、調整Thread數量,使其與CPU數量相當:
1)如果Thread數量《CPU數量,就需要增加Thread數量;
2)如果Thread數量》CPU數量,并且延遲很多,就需要減少Thread數量;
2、調整OS Tcp等待隊列:
1)如果客戶(hù)方出現連接中斷,但是Weblogic日志中沒(méi)有任何信息,就增加隊列長(cháng)度;
2)增加幅度:每次增加25%;
3、調整程序,減少Thread處理及等待時(shí)間:
1)分割長(cháng)事務(wù),劃分為多個(gè)短事務(wù);
2)優(yōu)化數據庫;
3)減少遠程調用;