當前位置:
首頁 > 最新 > Tomcat NIO/APR以及使用Nginx轉發時的壓測

Tomcat NIO/APR以及使用Nginx轉發時的壓測

一、三種模式

tomcat運行存在三種方式:BIO、NIO、APR。

BIO模式:阻塞式I/O操作,表示Tomcat使用的是傳統Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默認情況下是以bio模式運行的,由於每個請求都要創建一個線程來處理,線程開銷較大,不能處理高並發的場景,在三種模式中性能也最低。

NIO模式:是Java SE 1.4及後續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。是一個基於緩衝區、並能提供非阻塞I/O操作的Java API,它擁有比傳統I/O操作(bio)更好的並發運行性能。

APR模式:簡單理解,就是從操作系統級別解決非同步IO問題,大幅度的提高伺服器的處理和響應性能, 也是Tomcat運行高並發應用的首選模式。

tomcat7以上在windows上啟動都是以apr模式啟動,linux下使用APR模式啟動還需要安裝APR和native依賴,下圖是NIO和APR模式啟動的截圖。

NIO模式啟動

APR模式啟動

二、測試環境

測試使用了兩台虛擬機系統都是centos 6.9x64,Tomcat為8.0的版本。一台是以NIO模式啟動,一台是以APR模式啟動,兩台分別都安裝了Nginx,請求80埠便是經過Nginx而請求8080埠便是直接請求到Tomcat。

實體機配置如下圖。

實體機

本次測試的線程組如下圖所示。

線程組

三、測試結果

第一次測試設置虛擬機的內存為512M,第二次則將虛擬機內存設置為1024M(由於水印會遮擋截圖,後面的圖均未加水印)。

內存為512M時

nio(1)

nio(2)

nio + nginx(1)

nio + nginx(2)

apr(1)

apr(2)

apr + nginx(1)

apr + nginx(2)

apr + nginx(3)

apr(3)

nio + nginx(3)

nio(3)

內存為1024M

nio + nginx

nio

apr + nginx

apr

三、結論

apr相對於nio在同等環境下請求量確實有提高,使用nginx也能相應的提高請求量(針對本次結果)。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AllenW 的精彩文章:

TAG:AllenW |