乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Jetty安裝配置、特性、以及后期優(yōu)化

       instl 2015-06-26

      1) Jetty 

      作用:Jetty 是一個開源的servlet容器,它為基于Javaweb內(nèi)容,例如JSPservlet提供運(yùn)行環(huán)境。

      特性:易用性,可擴(kuò)展性,易嵌入性

      2) Jetty 安裝:

       tar zxf jetty.tar.gz -C /usr/local/jetty/ #解壓
       Java -jar stat.jar #啟動jetty
       export JETTY_HOME=/usr/java/jetty #將Jetty路徑添加到環(huán)境變量

      3) Jetty 配置:

      etc:該路徑用于存放Jetty的配置文件

      examples:該路徑用于存放Jetty的示例。

      legal:該路徑用于存放該項(xiàng)目的Lisence信息。

      lib:該路徑用于存放運(yùn)行Jetty必需的J缸文件。

      modules:該路徑用于存放Jetty的模塊,包括API文檔。

      patches:包含一些補(bǔ)丁說明。

      pom.xm1:Jettybuild文件,該文件不是Antbuild文件,而是mavaen2build文件。

      project-site:包含Jetty的網(wǎng)站的必需的樣式文件。

      readme.txt:包含最基本的使用信息。

      start.jar:啟動Jetty的啟動文件。

      version.txt:Jetty版本更新日志的簡單版本。

      webapps: 該路徑用于存放自動部署的 Web 應(yīng)用,只要將用戶的 Web 應(yīng)用復(fù)制到該路徑下,Web 應(yīng)用將自動部署

      webapps-plus: 存放一些用于演示 Jetty 擴(kuò)展屬性的 Web 應(yīng)用,該路徑下的 Web應(yīng)用也可自動部署。

      4) Jetty Tomcat 

       相同點(diǎn):

      TomcatJetty都是一種Servlet引擎,他們都支持標(biāo)準(zhǔn)的servlet規(guī)范和JavaEE的規(guī)范。

       不同點(diǎn):

      1.架構(gòu)比較

      Jetty的架構(gòu)比Tomcat的更為簡單

      Jetty的架構(gòu)是基于Handler來實(shí)現(xiàn)的,主要的擴(kuò)展功能都可以用Handler來實(shí)現(xiàn),擴(kuò)展簡單。

      Tomcat的架構(gòu)是基于容器設(shè)計(jì)的,進(jìn)行擴(kuò)展是需要了解Tomcat的整體設(shè)計(jì)結(jié)構(gòu),不易擴(kuò)展。

      2. 性能比較

      JettyTomcat性能方面差異不大

      Jetty可以同時處理大量連接而且可以長時間保持連接,適合于web聊天應(yīng)用等等。

      Jetty的架構(gòu)簡單,因此作為服務(wù)器,Jetty可以按需加載組件,減少不需要的組件,減少了服務(wù)器內(nèi)存開銷,從而提高服務(wù)器性能。

      Jetty默認(rèn)采用NIO結(jié)束在處理I/O請求上更占優(yōu)勢,在處理靜態(tài)資源時,性能較高

      Tomcat適合處理少數(shù)非常繁忙的鏈接,也就是說鏈接生命周期短的話,Tomcat的總體性能更高。

      Tomcat默認(rèn)采用BIO處理I/O請求,在處理靜態(tài)資源時,性能較差。

      3.其它比較

      Jetty的應(yīng)用更加快速,修改簡單,對新的Servlet規(guī)范的支持較好。

      Tomcat目前應(yīng)用比較廣泛,對JavaEEServlet的支持更加全面,很多特性會直接集成進(jìn)來。

      5) Jetty優(yōu)化

      一、一般調(diào)優(yōu)的基本過程

      1.明了需要調(diào)優(yōu)的系統(tǒng)架構(gòu)

      2.設(shè)定性能調(diào)優(yōu)的目標(biāo)

      3.明了目標(biāo)當(dāng)前的性能情況

      4.找出目前的性能瓶頸的所在

      5.解決引起性能瓶頸的根本問題

      6.重復(fù)以上過程直到達(dá)到設(shè)定目標(biāo)性能為止

      二、性能指標(biāo):

      崩潰點(diǎn):同時多少并發(fā)的時候,服務(wù)器Down掉?

      吞吐量:多少人一起來,都沒問題?

      并發(fā)數(shù):每秒能處理多少人?

      響應(yīng)時間:每人需要等待的時間多長?

      三、調(diào)優(yōu)點(diǎn):

      1.硬件配置優(yōu)化:

      虛擬機(jī)

      物理機(jī)

      CPU 內(nèi)存 

       

      2、系統(tǒng)優(yōu)化(Linux)

      已經(jīng)根據(jù)門戶的方式去優(yōu)化。

       

      3.JVM參數(shù)優(yōu)化:

      -Xms:設(shè)置jvm內(nèi)存的初始大小

      -Xmx:設(shè)置jvm內(nèi)存的最大值

      -Xmn:設(shè)置新域的大?。ㄟ@個似乎只對 jdk1.4來說是有效的,后來就廢棄了)

      -Xss:設(shè)置每個線程的堆棧大小(也就是說,在相同物理內(nèi)存下,減小這個值能生成更多的線程)

      -XX:NewRatio :設(shè)置新域與舊域之比,如-XX:NewRatio 4就表示新域與舊域之比為1:4

      -XX:NewSize:設(shè)置新域的初始值

      -XX:MaxNewSize :設(shè)置新域的最大值

      -XX:PermSize:設(shè)置永久域的初始值

      -XX:MaxPermSize:設(shè)置永久域的最大值

      -XX:SurvivorRatio=n:設(shè)置新域中Eden區(qū)與兩個Survivor區(qū)的比值。(Eden區(qū)主要是用來存放新生的對象,而兩個 Survivor區(qū)則用來存放每次垃圾回收后存活下來的對象)

      監(jiān)控內(nèi)存 CPU

      常見的錯誤 

      java.lang.OutOfMemoryError相信很多開發(fā)人員都用到過,這個主要就是JVM參數(shù)沒有配好引起的,但是這種錯誤又分兩種:java.lang.OutOfMemoryError: Java heap space和

      java.lang.OutOfMemoryError: PermGen space,其中前者是有關(guān)堆內(nèi)存的內(nèi)存溢出,可以同過配置-Xms和-Xmx參數(shù)來設(shè)置,而后者是有關(guān)永久域的內(nèi)存溢出,可以通過配置-XX:MaxPermSize來設(shè)置。

       

      4.容器優(yōu)化:

      a.線程池

       

      線程池線程資源大小確定了服務(wù)器的服務(wù)能力

      默認(rèn)大小不一定能滿足生產(chǎn)環(huán)境

      線程分配方式?jīng)Q定了服務(wù)器的資源利用效率

      固定線程數(shù)處理多任務(wù),代表:JDK的ThreadPoolExecutor

      以最大線程數(shù)為限處理多任務(wù),代表:Jetty自帶QueuedThreadPool

      Work-stealing 分配,Jetty目前沒有這個實(shí)現(xiàn) Jetty中配置實(shí)例:

       

       

      maxThreads:表示最多同時處理的連接數(shù)。應(yīng)該將線程數(shù)(最大線程數(shù))設(shè)置比最大預(yù)期負(fù)載(同時并發(fā)的點(diǎn)擊)多25%(經(jīng)驗(yàn)規(guī)則)(低配置用戶可通過降低maxThreads并同時增大

      acceptCount值來保證系統(tǒng)的穩(wěn)定)。

      acceptCount:當(dāng)同時連接的人數(shù)達(dá)到maxThreads時,還可以接收排隊(duì)的連接。

      minSpareThread:指“啟動以后,總是保持該數(shù)量的線程空閑等待”;設(shè)置比預(yù)期負(fù)載多25%。

      maxSpareThread:指“如果超過了minSpareThread,然后總是保持該數(shù)量的線程空閑等待”;設(shè)置比預(yù)期負(fù)載多25%。

      其中主要修改兩個參數(shù)maxThreads和acceptCount值。增加maxThreads,減少acceptCount值有利縮短系統(tǒng)的響應(yīng)時間。但是maxThreads和acceptCount的總和最高值不能超過6000,而且

      maxThreads過大會增加CPU和內(nèi)存消耗,故低配置用戶可通過降低maxThreads并同時增大acceptCount值來保證系統(tǒng)的穩(wěn)定。

      connectionTimeout:連接超時,最大超時時間,當(dāng)響應(yīng)速度慢的時候,通過調(diào)整該參數(shù),來平衡正確率和服務(wù)器資源的回收。

       

      b.Connectors

      選擇Connector時,需要考慮應(yīng)用自身的特點(diǎn),例如股票、聊天室.

      TCP 連接數(shù) Keep-Alive Java BIO Connectors SocketConnector (HTTP) 

      Ajp13SocketConnector (AJP) SslSocketConnector(SSL)

      Java NIO Connectors electChannelConnector(HTTP) SslSelectChannelConnector(SSL)

       

      Acceptors 表示同時在監(jiān)聽read事件的線程數(shù)

      默認(rèn)值是 典型值范圍 1~(處理器內(nèi)核數(shù)+1) 

      對于NIO 來說,設(shè)置為(處理器內(nèi)核數(shù)+1)比較合適

      maxIdleTime 表示連接最大空閑時間 默認(rèn)值是 200000,一般這個值都太大了

      典型值 3000 左右足夠 

      對AJP來說一般設(shè)置為-1,表示連接需要一直保持

       

      LowResourcesMaxIdleTime 表示線程資源稀少時的maxIdleTime 默認(rèn)值是 -1,表示沒有設(shè)置 

      一般設(shè)置值應(yīng)該<=maxIdleTime

      lowResourcesConnections 只有NIO才有這個設(shè)置,表示連接空閑時的連接數(shù),大于這個數(shù)將被shutdown 

      默認(rèn)值是 0,表示該設(shè)置沒有生效 每個acceptor的連接數(shù)=(lowResourcesConnections+acceptors-1)/acceptors

       

      AcceptQueueSize 連接被 accept 前允許等待的連接數(shù)即Socket的Backlog ,默認(rèn) 50

      SoLingerTime 具有指定逗留時間(以毫秒為單位) 即socket的setSoLinger,默認(rèn)關(guān)閉

      ResolveNames 是否反查 getRemoteHost() 默認(rèn)false

       

      c.JVM

      Jetty性能調(diào)優(yōu)點(diǎn)-JVM

      JVM參數(shù)調(diào)整主要涉及兩個方面 

      堆/棧內(nèi)存大小調(diào)整 

      Xmx/xms 最大/最小堆大小 

      xmn 新生代大小 

      -XX:MaxPermSize 持久代堆大小 

      垃圾分配回收算法考慮暫停時間、吞吐量選擇不同算法 

      串行/并行/并發(fā)收集

       

      d.Content Cache

      動態(tài)內(nèi)容不會被cache 靜態(tài)內(nèi)容才會被cache

      maxCacheSize 256,000,000

      maxCachedFileSize 200,000,000

      maxCachedFiles ?2,048

      useFileMappedBuffer ?true

      可以通過etc/webdefault.xml配置

       

      e.冗余組件去除

      去除多余的Connector 去除不需要的構(gòu)建Handler 例如SessionHandler,ServletHandler

      關(guān)閉不必要的服務(wù) 例如 jmx-console。(JBoss)

       

      5.代碼優(yōu)化:

      在高峰期,減去日志記錄的操作,或者把日志暫時先緩存起來,使用異步處理的方式。

      減少一些數(shù)據(jù)庫操作。

      減少NC 身份證等匹配方式。

       

      6.數(shù)據(jù)庫優(yōu)化:

      索引

      視圖

       

      7.其他:

      壓縮css,js,圖片

      使用瀏覽器緩存

      CDN加速

      分布式緩存服務(wù)器

      集群、負(fù)載均衡

       

      三.調(diào)優(yōu)策略:

      a.關(guān)鍵點(diǎn),找到瓶頸,給瓶頸分配更多的資源,或者減輕其工作量。

       

      四、調(diào)優(yōu)原則

      a.每臺服務(wù)器,所能承載的參數(shù),都會有差異,尤其是內(nèi)存 CPU的配置不一致。

      b.每種服務(wù)所需的計(jì)算資源各不相同,要根據(jù)服務(wù)的偏向不同,而去把最好的資源,分配到最需要的地方

      c.性能優(yōu)化,是永恒的話題,沒有永久最優(yōu)解,只能查出目前最優(yōu)解,是一個不斷優(yōu)化的過程。

       

      五、調(diào)優(yōu)技巧

      1.粗狂的掃點(diǎn)與詳細(xì)的指標(biāo)相結(jié)合,盡量讓驗(yàn)證調(diào)優(yōu)的過程更敏捷,讓主要的指標(biāo)穩(wěn)定下來,在確定指標(biāo)前,再使用詳細(xì)的方式去測出各種指標(biāo)。

      2.分輪測試,在測試結(jié)果中,找出各個參數(shù)的規(guī)律。為調(diào)優(yōu)提供指導(dǎo)數(shù)據(jù)。

      3.在程序增加計(jì)數(shù)器,驗(yàn)證LR的請求次數(shù)。

      4.在程序每個步驟,增加多一些時間,檢查下,到底是卡在哪個步驟,尤其是操作數(shù)據(jù)庫前后。

       

       

       

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多