久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Tomcat修改內(nèi)存配置

      一、配置

      Tomcat/conf/server.xml修改配置

      <Connector port=”8080″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
              redirectPort=”8443″
              URIEncoding=”UTF-8″
              minSpareThreads=”25″
              maxSpareThreads=”300″
              maxThreads=”500″
              acceptCount=”500″
              connectionTimeout=”30000″
              enableLookups=”false”/>

      二、參數(shù)說(shuō)明

      maxIdleTime:最大空閑時(shí)間,超過(guò)這個(gè)空閑時(shí)間,且線程數(shù)大于minSpareThreads的,都會(huì)被回收,默認(rèn)值1分鐘(60000ms);
      minSpareThreads:最小空閑線程數(shù),任何情況都會(huì)存活的線程數(shù),即便超過(guò)了最大空閑時(shí)間,也不會(huì)被回收,默認(rèn)值4;
      maxSpareThreads:最大空閑線程數(shù),在最大空閑時(shí)間(maxIdleTime)內(nèi)活躍過(guò),此時(shí)空閑,當(dāng)空閑時(shí)間大于maxIdleTime則被回收,小則繼續(xù)存活,等待被調(diào)度,默認(rèn)值50;
      maxThreads:最大線程數(shù),大并發(fā)請(qǐng)求時(shí),tomcat能創(chuàng)建來(lái)處理請(qǐng)求的最大線程數(shù),超過(guò)則放入請(qǐng)求隊(duì)列中進(jìn)行排隊(duì),默認(rèn)值為200;
      acceptCount:當(dāng)最大線程數(shù)(maxThreads)被使用完時(shí),可以放入請(qǐng)求隊(duì)列排隊(duì)個(gè)數(shù),超過(guò)這個(gè)數(shù)返回connection refused(請(qǐng)求被拒絕),一般設(shè)置和maxThreads一樣,不過(guò)這個(gè)具體需要根據(jù)自己的應(yīng)用實(shí)際訪問(wèn)峰值和平均值來(lái)權(quán)衡,默認(rèn)值為100;
      connectionTimeout:網(wǎng)絡(luò)連接超時(shí),假設(shè)設(shè)置為0表示永不超時(shí),這樣設(shè)置隱患巨大,通??稍O(shè)置為30000ms,默認(rèn)60000ms。
      Windows Tomcat允許每個(gè)進(jìn)程maxThreads(最大線程數(shù))2000
      Linux Tomcat允許每個(gè)進(jìn)程maxThreads(最大線程數(shù))1000

      Tomcat修改內(nèi)存配置

      圖解線程池原理

      Tomcat修改內(nèi)存配置

      請(qǐng)看下面三種情況

      情況1:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)沒(méi)有到達(dá)maxThreads,tomcat會(huì)起動(dòng)一個(gè)線程來(lái)處理此請(qǐng)求。

      情況2:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)已經(jīng)到達(dá)maxThreads,tomcat會(huì)把此請(qǐng)求放入等待隊(duì)列,等待空閑線程。

      情況3:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)已經(jīng)到達(dá)maxThreads,等待隊(duì)列中的請(qǐng)求個(gè)數(shù)也達(dá)到了acceptCount,此時(shí)tomcat會(huì)直接拒絕此次請(qǐng)求,返回connection refused

      maxThreads如何配置

      一般的服務(wù)器操作都包括量方面:1計(jì)算(主要消耗cpu),2等待(io、數(shù)據(jù)庫(kù)等)

      第一種極端情況,如果我們的操作是純粹的計(jì)算,那么系統(tǒng)響應(yīng)時(shí)間的主要限制就是cpu的運(yùn)算能力,此時(shí)maxThreads應(yīng)該盡量設(shè)的小,降低同一時(shí)間內(nèi)爭(zhēng)搶cpu的線程個(gè)數(shù),可以提高計(jì)算效率,提高系統(tǒng)的整體處理能力。

      第二種極端情況,如果我們的操作純粹是IO或者數(shù)據(jù)庫(kù),那么響應(yīng)時(shí)間的主要限制就變?yōu)榈却獠抠Y源,此時(shí)maxThreads應(yīng)該盡量設(shè)的大,這樣才能提高同時(shí)處理請(qǐng)求的個(gè)數(shù),從而提高系統(tǒng)整體的處理能力。此情況下因?yàn)閠omcat同時(shí)處理的請(qǐng)求量會(huì)比較大,所以需要關(guān)注一下tomcat的虛擬機(jī)內(nèi)存設(shè)置和linux的open file限制。

      我在測(cè)試時(shí)遇到一個(gè)問(wèn)題,maxThreads我設(shè)置的比較大比如3000,當(dāng)服務(wù)的線程數(shù)大到一定程度時(shí),一般是2000出頭,單次請(qǐng)求的響應(yīng)時(shí)間就會(huì)急劇的增加,

      百思不得其解這是為什么,四處尋求答案無(wú)果,最后我總結(jié)的原因可能是cpu在線程切換時(shí)消耗的時(shí)間隨著線程數(shù)量的增加越來(lái)越大,

      cpu把大多數(shù)時(shí)間都用來(lái)在這2000多個(gè)線程直接切換上了,當(dāng)然cpu就沒(méi)有時(shí)間來(lái)處理我們的程序了。

      以前一直簡(jiǎn)單的認(rèn)為多線程=高效率。。其實(shí)多線程本身并不能提高cpu效率,線程過(guò)多反而會(huì)降低cpu效率。

      當(dāng)cpu核心數(shù)<線程數(shù)時(shí),cpu就需要在多個(gè)線程直接來(lái)回切換,以保證每個(gè)線程都會(huì)獲得cpu時(shí)間,即通常我們說(shuō)的并發(fā)執(zhí)行。

      所以maxThreads的配置絕對(duì)不是越大越好。

      現(xiàn)實(shí)應(yīng)用中,我們的操作都會(huì)包含以上兩種類(lèi)型(計(jì)算、等待),所以maxThreads的配置并沒(méi)有一個(gè)最優(yōu)值,一定要根據(jù)具體情況來(lái)配置。

      最好的做法是:在不斷測(cè)試的基礎(chǔ)上,不斷調(diào)整、優(yōu)化,才能得到最合理的配置。

      acceptCount的配置,我一般是設(shè)置的跟maxThreads一樣大,這個(gè)值應(yīng)該是主要根據(jù)應(yīng)用的訪問(wèn)峰值與平均值來(lái)權(quán)衡配置的。

      如果設(shè)的較小,可以保證接受的請(qǐng)求較快相應(yīng),但是超出的請(qǐng)求可能就直接被拒絕

      如果設(shè)的較大,可能就會(huì)出現(xiàn)大量的請(qǐng)求超時(shí)的情況,因?yàn)槲覀兿到y(tǒng)的處理能力是一定的。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)