version:apache tomcat 8.5
作業系統:mac os x 10.14.5
jvm:1.8.0
測試資料場景:獲取乙個電商系統中的乙個商品首頁資料
測試工具:ab壓力測試
在一台或者環境一樣兩台機器上搭配兩個tomcat,我是一台mac os x 10.14.5,所以一台機器同時執行兩個tomcat應用伺服器,這個配置方式請參考:兩個一樣的tomcat不能同時啟動解決方法
兩個tomcat應用伺服器server.xml配置分別,請參考:tomcat的接收請求方式:bio/nio/apr
埠:apr:8081 和nio:8082
配置如好,分別啟動如下圖
測試方法:ab壓力測試
請求處理條數:1000
併發數:100
請求資料對比資料:requests per second (吞吐率)
計算公式:總請求數/處理完成這些請求數所花費的時間,即
request per second=complete requests/time taken for tests
請求方式
第一次第二次
第三次第四次
第五次第六次
第七次nio
10680.11
13599.15
13556.38
14628.22
15350.84
12232.42
15115.10
apr9348.77
11787.73
13090.89
13919.24
12253.85
14820.08
12099.36
請求資料對比資料:time taken for tests(處理完成這些請求數所花費的時間)
請求方式
第一次第二次
第三次第四次
第五次第六次
第七次nio
0.094
0.074
0.074
0.068
0.065
0.082
0.066
apr0.107
0.074
0.076
0.077
0.072
0.067
0.083
注:開啟了apr之後,jvm用到的native記憶體會增大一次100的併發量請求執行數1000,迴圈兩分鐘
以上只是片面的測試,覆蓋率和環境都有侷限性,如果有錯誤的地方或好的意見請不吝賜教,共同討論。謝謝
Tomcat的BIO和NIO一些問題
最近一些朋友通過書籍找到我,問了一些關於tomcat中bio和nio的問題,這裡列一下方便需要的朋友。後續也將前面有朋友問的問題整理下。只把 tomcat 的 bio 模式改為 nio 模式,是否能提高伺服器的吞吐量?發現在配置一樣的情況下,兩種模式壓出來的吞吐量差不多。要看你系統是不是整個都非同步...
kafka設計之冪等性和事務
http 1.1中對冪等性的定義是 一次和多次請求某乙個資源對於資源本身應該具有同樣的結果 網路超時等問題除外 也就是說,其任意多次執行對資源本身所產生的影響均與一次執行的影響相同 實現冪等的關鍵點就是服務端可以區分請求是否重複,過濾掉重複的請求。要區分請求是否重複的有兩點 唯一標識 要想區分請求是...
資料庫特性之原子性和一致性
資料庫的四大特性 原子性,一致性,隔離性和永續性。其中 原子性 指事務包含的所有操作要麼全部成功,要麼全部失敗回滾 一致性 指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。我當時看見這兩個特性就感覺很奇怪,難道原子性和一致性不是一樣的...