測(cè)試機(jī): amd 兩核心 ,客戶端與服務(wù)端都在本機(jī)上跑。

網(wǎng)絡(luò)層:A類epoll線程處理accept的被動(dòng)連接;
B類epoll線程處理connect的主動(dòng)連接;
C類epoll線程把A或B類epoll線程得到的連接分配到某個(gè)線程,專門處理send和recv操作;
D類線程池處理C類拋出來(lái)的數(shù)據(jù),處理完之后,再投遞到C類線程做send操作。

用ab測(cè)試短連接
ab -n 1000 -c 150 http://127.0.0.1:8090/
測(cè)試20次之后,得到一個(gè)峰值tps=6000



用字節(jié)的寫的基于數(shù)據(jù)echo測(cè)試的壓力測(cè)試程序測(cè)試長(zhǎng)連接:
client發(fā)出64字節(jié)數(shù)據(jù),echosvrd返回64字節(jié),client又發(fā)出64字節(jié)。

每次傳輸網(wǎng)絡(luò)傳輸數(shù)據(jù)在64字節(jié)以下的情況下: 
./stree_client 127.0.0.1 8090 100    得到tps=13851
./stree_client 127.0.0.1 8090 1000   得到tps=16641
./stree_client 127.0.0.1 8090 10000  得到tps=16600 service cpu跑到90%,始終在90%以下;stree_client的cpu跑到32%左右;
./stree_client 127.0.0.1 8090 20000  stree_client的cpu跑到100%告終
./stree_client 127.0.0.1 8090 15000  stree_client的cpu跑到100%告終

把日志的輸出級(jí)別調(diào)到1,此時(shí)基本無(wú)日志輸出:
./stree_client 127.0.0.1 8090 10000  得到tps=29436 service cpu跑到70%;stree_client的cpu跑到48%左右;
./stree_client 127.0.0.1 8090 15000  stree_client的cpu跑到100%告終

再把網(wǎng)絡(luò)傳輸?shù)淖止?jié)調(diào)整為128字節(jié)左右:
./stree_client 127.0.0.1 8090 10000  得到tps=29179 service cpu跑到68%;stree_client的cpu跑到45%左右;

結(jié)論:
在本機(jī)測(cè)試,就忽略了網(wǎng)絡(luò)io時(shí)延,得到網(wǎng)絡(luò)引擎cpu跑到100%時(shí)的tps是 不超過(guò)30000,或者不偏離30000很遠(yuǎn),
此時(shí)并發(fā)連接數(shù)在10000