亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【技巧】Tomcat生產(chǎn)服務(wù)器性能優(yōu)化

系統(tǒng) 1838 0

?

1. 服務(wù)器資源

  • ? ? 對(duì)于高并發(fā)情況下會(huì)有大量的運(yùn)算,那么CPU的速度會(huì)直接影響到處理速度。?
  • ? ? 內(nèi)存在大量數(shù)據(jù)處理的情況下,將會(huì)有較大的內(nèi)存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等參數(shù)對(duì)內(nèi)存不同功能塊進(jìn)行劃分。我們之前就遇到過(guò)內(nèi)存分配不足,導(dǎo)致虛擬機(jī)一直處于full GC,從而導(dǎo)致處理能力嚴(yán)重下降。

?

2.?開(kāi)啟內(nèi)容壓縮

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8181" compression="500"
compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />

?

3. 采用集群

? ? 單個(gè)服務(wù)器性能總是有限的,最好的辦法自然是實(shí)現(xiàn)橫向擴(kuò)展,那么組建tomcat集群是有效提升性能的手段。

? ? 我們還是采用了Nginx來(lái)作為請(qǐng)求分流的服務(wù)器,后端多個(gè)tomcat協(xié)同工作。

?

4. 優(yōu)化tomcat參數(shù)

? ? 這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,主要是優(yōu)化連接配置,關(guān)閉客戶端dns查詢。

      <Connector port="8080"
      
??????? protocol ="org.apache.coyote.http11.Http11NioProtocol"
??????? executor ="tomcatThreadPool"
??????? compression ="on"
??????? compressionMinSize ="2048"
??????? maxThreads="30000" <!-- 這個(gè)要看服務(wù)器內(nèi)存多大了-->
??????? minSpareThreads="100"
??????? maxSpareThreads="2048"
??????? enableLookups="false"
??????? redirectPort="8443"
??????? acceptCount="35000"
??????? debug="0"
??????? connectionTimeout="40000"
??????? disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

Tomcat連接器池

      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="350" />
    

? ? ? ?線程池名:???????????name="tomcatThreadPool"

???????線程前綴:???????????namePrefix="catalina-exec-"

???????最大產(chǎn)生線程數(shù):maxThreads="1000"

???????最小初始現(xiàn)程數(shù):minSpareThreads="350"

5. 改用APR庫(kù)

? ? tomcat默認(rèn)采用的BIO模型,在幾百并發(fā)下性能會(huì)有很?chē)?yán)重的下降。tomcat自帶還有NIO的模型,另外也可以調(diào)用APR的庫(kù)來(lái)實(shí)現(xiàn)操作系統(tǒng)級(jí)別控制。

? ? NIO模型是內(nèi)置的,調(diào)用很方便,只需要將上面配置文件中protocol修改成org.apache.coyote.http11.Http11NioProtocol,重啟即可生效。上面配置我已經(jīng)改過(guò)了,默認(rèn)的是HTTP/1.1。

? ? APR則需要安裝第三方庫(kù),在高并發(fā)下會(huì)讓性能有明顯提升。具體安裝辦法可以參考 下面紅色內(nèi)容 。安裝完成后重啟即可生效。如使用默認(rèn)protocal就是apr,但最好把將protocol修改成org.apache.coyote.http11.Http11AprProtocol,會(huì)更加明確。

? ? 在官方找到一個(gè)表格詳細(xì)說(shuō)明了這三種方式的區(qū)別:

                        Java Blocking Connector   Java Nio Blocking Connector   APR/
      
        native
      
      
         Connector 

                             BIO                         NIO                       APR 

Classname                AjpProtocol               AjpNioProtocol           AjpAprProtocol 

Tomcat Version           
      
      3.x onwards                 7.x onwards              5.5
      
        .x onwards 

Support Polling              NO                          YES                       YES 

Polling Size                 N
      
      /
      
        A                   maxConnections             maxConnections 

Read Request Headers      Blocking                  Sim Blocking                   Blocking 

Read Request Body         Blocking                  Sim Blocking                   Blocking 

Write Response            Blocking                  Sim Blocking                   Blocking 

Wait 
      
      
        for
      
      
         next Request     Blocking                  Non Blocking               Non Blocking 

Max Connections        maxConnections              maxConnections             maxConnections 
      
    

6. 優(yōu)化網(wǎng)絡(luò)

? ? Joel也明確提出了優(yōu)化網(wǎng)卡驅(qū)動(dòng)可以有效提升性能,這個(gè)對(duì)于集群環(huán)境工作的時(shí)候尤為重要。由于我們采用了linux服務(wù)器,所以優(yōu)化內(nèi)核參數(shù)也是一個(gè)非常重要的工作。給一個(gè)參考的優(yōu)化參數(shù):

??修改/etc/sysctl.cnf文件,在最后追加如下內(nèi)容:?

      net.core.netdev_max_backlog = 32768
      
         

net.core.somaxconn 
      
      = 32768
      
         

net.core.wmem_default 
      
      = 8388608
      
         

net.core.rmem_default 
      
      = 8388608
      
         

net.core.rmem_max 
      
      = 16777216
      
         

net.core.wmem_max 
      
      = 16777216
      
         

net.ipv4.ip_local_port_range 
      
      = 1024 65000
      
         

net.ipv4.route.gc_timeout 
      
      = 100
      
         

net.ipv4.tcp_fin_timeout 
      
      = 30
      
         

net.ipv4.tcp_keepalive_time 
      
      = 1200
      
         

net.ipv4.tcp_timestamps 
      
      = 0
      
         

net.ipv4.tcp_synack_retries 
      
      = 2
      
         

net.ipv4.tcp_syn_retries 
      
      = 2
      
         

net.ipv4.tcp_tw_recycle 
      
      = 1
      
         

net.ipv4.tcp_tw_reuse 
      
      = 1
      
         

net.ipv4.tcp_mem 
      
      = 94500000 915000000 927000000
      
         

net.ipv4.tcp_max_orphans 
      
      = 3276800
      
         

net.ipv4.tcp_max_syn_backlog 
      
      = 65536 
    

7. 讓測(cè)試說(shuō)話

? ? 優(yōu)化系統(tǒng)最忌諱的就是只調(diào)優(yōu)不測(cè)試,有時(shí)不適當(dāng)?shù)膬?yōu)化反而會(huì)讓性能更低。以上所有的優(yōu)化方法都要在本地進(jìn)行性能測(cè)試過(guò)后再不斷調(diào)整參數(shù),這樣最終才能達(dá)到最佳的優(yōu)化效果。

補(bǔ)充Bio、Nio、Apr模式的測(cè)試結(jié)果:

??? 對(duì)于這幾種模式,我用ab命令模擬1000并發(fā)測(cè)試10000詞,測(cè)試結(jié)果比較意外,為了確認(rèn)結(jié)果,我每種方式反復(fù)測(cè)試了10多次,并且在兩個(gè)服務(wù)器上都測(cè)試了一遍。結(jié)果發(fā)現(xiàn)Bio和Nio性能差別非常微弱,難怪默認(rèn)居然還是Bio。但是采用apr,連接建立的速度會(huì)有50%~100%的提升。直接調(diào)用操作系統(tǒng)層果然神速啊,這里強(qiáng)烈推薦apr方式!

-------------------------------------------------------- ↓------tomcat7.0.8的高級(jí)應(yīng)用-apr1.4.2安裝------↓ -------------------------------------------------------------------

一 windows下安裝 ?
直接拷貝tcnative-1.dll到TOMCAT_HOME/bin目錄下,啟動(dòng)即可?
下載地址 http://archive.apache.org/dist/tomcat/tomcat-connectors/native/?

二 linux centos4.8或者ubuntu10.10 server安裝 ?
1.下載包?
到http://apr.apache.org/下載下面3個(gè)包?
apr-1.4.2.tar.gz?
apr-iconv-1.2.1.tar.gz?
apr-util-1.3.10.tar.gz?
java版本jdk-6u23-linux-x64-rpm.bin?
tomcat版本apache-tomcat-7.0.8.tar.gz?

三 安裝JDK,tomcat ?
安裝JDK并設(shè)置環(huán)境變量?
vi /etc/profile #在他文件末尾處添加下面的變量?
# java?
JAVA_HOME=/usr/java/jdk1.6.0_23?
PATH=$JAVA_HOME/bin:$PATH?
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar?
export JAVA_HOME?
export PATH?
export CLASSPATH?
執(zhí)行?
source /etc/profile?
此時(shí)環(huán)境變量生效果?

apache-tomcat-7.0.8.tar.gz解壓縮到/usr/local/下面?

四 安裝apr插件 ?
1)安裝apr?
tar zxvf apr-1.4.2.tar?
cd apr-1.4.2?
./configure --prefix=/usr/local/apr?
make?
make install?

2)安裝apr-iconv?
程序代碼?
tar -zxvf apr-iconv-1.2.1.tar.gz?
cd apr-iconv-1.2.1?
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr?
make?
make install?

3)安裝apr-util?
程序代碼?
tar zxvf apr-util-1.3.10.tar.gz?
cd apr-util-1.3.10?
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv?
make?
make install?

4)安裝tomcat-native?
程序代碼?
tar zxvf tomcat-native-1.1.20-src.tar.gz?
cd tomcat-native-1.1.20-src/jni/native???
./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_23?
make?
make install?

5)添加環(huán)境變量?
vi /etc/profile #在他文件末尾處添加下面的變量?
# apr?
export LD_LIBRARY_PATH=/usr/local/apr/lib?
執(zhí)行?
source /etc/profile?
此時(shí)環(huán)境變量生效果?

啟動(dòng)tomcat?
TOMCAT_HOME/bin/start.sh?
more TOMCAT_HOME/logs/catalina.out?

即可看到?
Aug 29, 2010 3:47:32 PM org.apache.catalina.core.AprLifecycleListener init?
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.?
優(yōu)化完成

?

【技巧】Tomcat生產(chǎn)服務(wù)器性能優(yōu)化


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品美女久久久 | 欧洲精品在线观看 | 久揄揄鲁一二三四区高清在线 | 91好色视频| 精品亚洲欧美高清不卡高清 | 久久久久免费精品国产小说 | 在线免费一区二区 | 综合网色 | 大尺度视频网站久久久久久久久 | 日韩在线中文字幕 | 视频日韩| 69网站在线观看 | 国产成人一区免费观看 | 99热这里只有精品首页 | 国产亚洲欧美日韩国产片 | 成年黄网站免费大全毛片 | 国产精品高清在线观看 | 青青草论坛 | 色综合夜夜嗨亚洲一二区 | 阿v天堂2017 啊用力嗯快国产在线观看 爱爱99 | 欧美在线一区二区三区 | 一区二区视频免费看 | 玖玖成人网 | 夜鲁夜鲁夜鲁在线观看福利 | 国产一区二区三区日韩欧美 | 日韩精品中文字幕在线观看 | 国产日韩欧美自拍 | 国产玖玖视频 | 久久精品综合免费观看 | 日本一区二区三区四区五区 | 四虎永久免费 | 四虎影永久在线观看网址 | 在线h片| 国产亚洲一级精品久久 | 免费小视频| 亚洲sss视频 | 成人影院免费在线观看 | 久久伊人成人 | 欧美综合国产精品日韩一 | 成年午夜视频免费观看视频 | 黄色四虎影院 |