Tomcat性能優化-2

修改Connector運行模式 啟用NIO 或 APR

bio介紹

bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是傳統的Java I/O操作
默認模式,性能最差,沒有經過任何優化處理和支持
nio模式

nio(non-blocking I/O),Java SE 1.4及后續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。Java nio是一個基于緩沖區、
并能提供非阻塞I/O操作的Java API。
擁有比bio更好地性能

修改%CATALINA_HOME%/server.xml

源:<Connector port="8080" protocol="HTTP/1.1"
                    connectionTimeout="20000"
                    redirectPort="8443" />

修改protocol的值為:org.apache.coyote.http11.Http11NioProtocol
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                    connectionTimeout="20000"
                    redirectPort="8443" />
service tomcat restart生效
apr模式

apr(Apache Portable Runtime/Apache可移植運行時庫),Tomcat將以JNI的形式調用Apache HTTP服務器的核心動態鏈接庫來處理文件讀取或網
絡傳輸操作,從而大大地提高Tomcat對靜態文件的處理性能。從操作系統級別來解決異步的IO問題,大幅度的提高性能。 Tomcat apr也是在Tomcat
上運行高并發應用的首選模式。

要讓tomcat以apr模式運行,需要安裝 apr 和 native
安裝apr
yum -y install apr apr-devel

yum -y install gcc
 
安裝native
cd /data/tomcat/bin/
tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.1.33-src/jni/native/
./configure --with-apr=/usr/bin/apr-1-configmake && make install

整合Tomcat apr

    在/etc/profile中加入
    export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib
    source /etc/profile
    
    修改配置文件server.xml
    
    源:<Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />
    修改protocol的值為org.apache.coyote.http11.Http11NioProtocol
    <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
                connectionTimeout="20000"
                redirectPort="8443" />
    重啟

查看Tomcat Connector運行模式

方法一:在http://x.x.x.x:8080/manager/status 中查看服務器狀態 
"http-apr-8080"

方法二:根據Tomcat啟動日志信息判斷
    bio
        INFO: Initializing ProtocolHandler ["http-bio-8080"]
        Aug 04, 2015 10:20:35 PM org.apache.coyote.AbstractProtocol init12
    nio
        INFO: Initializing ProtocolHandler ["http-nio-8080"]
        Aug 04, 2015 10:27:58 PM org.apache.coyote.AbstractProtocol init12
    apr
        NFO: Initializing ProtocolHandler ["http-apr-8080"]
        Aug 04, 2015 10:33:45 PM org.apache.coyote.AbstractProtocol init12

轉載:http://blog.csdn.net/loyachen/article/details/47280237

原創文章,作者:心肝壞了,如若轉載,請注明出處:http://www.www58058.com/41978

(0)
心肝壞了心肝壞了
上一篇 2016-09-19 13:48
下一篇 2016-09-19 13:49

相關推薦

  • 三次握手,四次揮手

    TCP/IP協議的詳細信息參看《TCP/IP協議詳解》三卷本。 在談及TCP建立連接和釋放連接過程,先來簡單認識一下TCP報文段首部格式的的幾個名詞(這里只是簡單說明,具體請查看相關教程)下面是TCP報文格式圖:     序列號seq:占4個字節,用來標記數據段的順序,TCP把連接中發送的所有數據字節都編上一個序號,第一個字節的…

    2017-09-03
  • CentOS 6 啟動流程

    CentOS6啟動流程 1.加載BIOS的硬件信息,獲取第一個啟動設備 2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息 3.加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備 4.核心執行init程序,并獲取默認的運行信息 5.init程序執行/etc/rc.d/rc.sysinit文件 6.啟動核心的外掛模塊 7.ini…

    2017-09-01
  • linux用戶與組的基本概念–20160730

    用戶組和權限管理—概念       用戶組和權限管理—概念 3A:認證,授權,審計。 每個使用者:用戶標識,密碼:  Authentication    :  認證 Authorization     :授權 Accout/Audition…

    Linux干貨 2016-08-04
  • lvm基本應用

    前言 一種技術要知其然,還要知其所以然 lvm簡介 LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。普通的磁盤分區管理方式在邏輯分區劃分好之后就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因為受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上…

    Linux干貨 2016-05-21
  • Linux中的軟鏈接/硬鏈接

    Linux鏈接概念Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 【硬連接】硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指…

    Linux干貨 2016-10-20
  • 從Linux小白到大?!c狼共舞的日子12(下)

    馬哥教育網絡班21期+第12周課程練習 5、為第4題中的第2個虛擬主機提供https服務,使得用戶可以通過https安全的訪問此web站點; (1)要求使用證書認證,證書中要求使用的國家(CN)、州(HA)、城市(ZZ)和組織(MageEdu); (2)設置部門為Ops,主機名為www2.stuX.com,郵件為admin@stuX.com; 1.CA生成私…

    Linux干貨 2016-12-26
欧美性久久久久