Tomcat之NIO和APR效能對比

2021-09-24 10:58:43 字數 2172 閱讀 3660

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中對冪等性的定義是 一次和多次請求某乙個資源對於資源本身應該具有同樣的結果 網路超時等問題除外 也就是說,其任意多次執行對資源本身所產生的影響均與一次執行的影響相同 實現冪等的關鍵點就是服務端可以區分請求是否重複,過濾掉重複的請求。要區分請求是否重複的有兩點 唯一標識 要想區分請求是...

資料庫特性之原子性和一致性

資料庫的四大特性 原子性,一致性,隔離性和永續性。其中 原子性 指事務包含的所有操作要麼全部成功,要麼全部失敗回滾 一致性 指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。我當時看見這兩個特性就感覺很奇怪,難道原子性和一致性不是一樣的...