第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

tomcat只能支持幾百個(gè)線程并發(fā)的原因是什么?

tomcat只能支持幾百個(gè)線程并發(fā)的原因是什么?

12345678_0001 2019-05-11 16:29:53
按照一個(gè)線程1M大小兩三百個(gè)并發(fā)線程也就兩三百M(fèi)而已內(nèi)存應(yīng)該不是瓶頸那么,tomcat的瓶頸是什么?
查看完整描述

2 回答

?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

線程不是越多越好,假如你的業(yè)務(wù)邏輯全部是計(jì)算型的(CPU密集型),不涉及到IO,并且只有一個(gè)核心。那肯定一個(gè)線程最好,多一個(gè)線程就多一點(diǎn)線程切換的計(jì)算,CPU不能完完全全的把計(jì)算能力放在業(yè)務(wù)計(jì)算上面,線程越多就會(huì)造成CPU利用率(用在業(yè)務(wù)計(jì)算的時(shí)間/總的時(shí)間)下降。
但是在WEB場(chǎng)景下,業(yè)務(wù)并不是CPU密集型任務(wù),而是IO密集型的任務(wù),一個(gè)線程是不合適,如果一個(gè)線程在等待數(shù)據(jù)時(shí),把CPU的計(jì)算能力交給其他線程,這樣也能充分的利用CPU資源。但是線程數(shù)量也要有個(gè)限度,一般線程數(shù)有一個(gè)公式:最佳啟動(dòng)線程數(shù)=[任務(wù)執(zhí)行時(shí)間/(任務(wù)執(zhí)行時(shí)間-IO等待時(shí)間)]*CPU內(nèi)核數(shù)超過(guò)這個(gè)數(shù)量,CPU要進(jìn)行多余的線程切換從而浪費(fèi)計(jì)算能力,低于這個(gè)數(shù)量,CPU要進(jìn)行IO等待從而造成計(jì)算能力不飽和??傊褪且M可能的榨取CPU的計(jì)算能力。
如果你的CPU處于飽和狀態(tài),并且沒有多余的線程切換浪費(fèi),那么此時(shí)就是你服務(wù)的完美狀態(tài),如果再加大并發(fā)量,勢(shì)必會(huì)造成性能上的下降。
線程多少對(duì)最高并發(fā)沒有直接影響,任務(wù)計(jì)算時(shí)間才是影響最高并發(fā)數(shù)的根本原因。當(dāng)任務(wù)的執(zhí)行時(shí)間減小,那么服務(wù)器每秒處理的請(qǐng)求就會(huì)增加,也就是說(shuō)支持的并發(fā)變大。比如你在服務(wù)端只是簡(jiǎn)單的returnok;,稍微正常一點(diǎn)服務(wù)器上的Tomcat都能達(dá)到5000甚至10000的并發(fā)。只不過(guò)在大多數(shù)的web應(yīng)用中,任務(wù)執(zhí)行時(shí)間并不會(huì)太短,而且還涉及到數(shù)據(jù)庫(kù)操作,所以大部分情況下Tomcat的最高并發(fā)就只有幾百。
另外對(duì)于相同的任務(wù)執(zhí)行時(shí)間,在不同的IO模型和線程模型中最高并發(fā)也表現(xiàn)的不一樣。在BIO模型中,線程數(shù)=鏈接數(shù),并發(fā)增加會(huì)造成線程數(shù)一定程度的增加,CPU就要花費(fèi)一點(diǎn)時(shí)間在線程切換上。在NIO模型中,并發(fā)并不會(huì)造成線程的增加,可以維持最佳線程數(shù),從而提高CPU的利用率,在一定程度上提高最高并發(fā)。Tomcat已經(jīng)實(shí)現(xiàn)了NIO模型,在7.x版本中需要配置,8.x版本使用NIO作為默認(rèn)的模型。
補(bǔ)充:上面的回答的不好,補(bǔ)充一下。題主應(yīng)該這么問(wèn),tomcat只能支持幾百個(gè)并發(fā)的原因是什么?其實(shí)跟線程關(guān)系不大,暫且以1秒內(nèi)服務(wù)器處理的請(qǐng)求數(shù)來(lái)衡量并發(fā)數(shù),那么最大并發(fā)就是1秒內(nèi)服務(wù)器最多能處理的請(qǐng)求數(shù),很顯然,平均單個(gè)請(qǐng)求處理時(shí)間越短,則最大并發(fā)越高。平均請(qǐng)求處理時(shí)間直接影響了最大并發(fā)的高度。而大部分情況下Tomcat處理請(qǐng)求的平均時(shí)間不會(huì)太短,有時(shí)還設(shè)計(jì)數(shù)據(jù)庫(kù)操作,所以大部分情況下Tomcat的最高并發(fā)就只有幾百。然后線程模型會(huì)影響Tomcat處理請(qǐng)求的平均時(shí)間,要么是線程太少造成CPU等待而增加了平均處理時(shí)間,要么是線程太多而造成CPU要花費(fèi)一定的周期來(lái)進(jìn)行線程切換而延長(zhǎng)了平均處理時(shí)間。所以合理的設(shè)置線程數(shù)能一定程度提高最大并發(fā)。那么怎么提高最大并發(fā)呢?思路當(dāng)然是減少平均請(qǐng)求處理時(shí)間,比如說(shuō)優(yōu)化算法,動(dòng)靜分離,緩存,異步等等手段。
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-11
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

線程數(shù)你可以自己調(diào)整。比如你也可以調(diào)整到上千個(gè)。
但具體調(diào)整多少得看你的業(yè)務(wù)性質(zhì),而且并不是線程越多越好。
線程數(shù)增加會(huì)導(dǎo)致頻繁的上下文切換,這個(gè)對(duì)性能的影響也很大。
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-11
  • 2 回答
  • 0 關(guān)注
  • 1171 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)