1. 程式人生 > >tomcat7優化之配置執行緒池

tomcat7優化之配置執行緒池

執行緒池指web請求負載的數量,使用執行緒池,可以用較少的執行緒處理較多的訪問,提高tomcat處理請求的能力

具體步驟如下:

在tomcat目錄下的conf中的server.xml中進行配置,一共分兩步進行:

第一步:新增如下程式碼:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  
    maxThreads="500" minSpareThreads="100" />
分析:

name:執行緒名字;

namePrefix:執行緒的字首;

maxThresds:最大併發量,預設是200,推薦配置在500,tomcat的最大併發量也就是500左右,但是最終根據實際情況而定;

minSpareThreads:tomcat啟動時初始化的執行緒數,預設是25。

第二步:替換如下程式碼:

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

將上面的程式碼註釋掉,替換成下面的程式碼:

<Connector executor="tomcatThreadPool"   
    port="8080" protocol="HTTP/1.1"     
    connectionTimeout="40000" 
    keepAliveTimeout="30000"
    maxKeepAliveRequests="8000"
    maxHttpHeaderSize="8192"
    URIEncoding="UTF-8"
    enableLookups="false"
    acceptCount="1000"
    disableUploadTimeout="true"
    redirectPort="8443" 
    compression="on"
    compressionMinSize="1024"
    noCompressionUserAgents="gozilla,traviata"
    compressableMimeType="text/html,image/gif,image/jpeg,text/css,application/javascript,text/plain,application/jsonml+json,application/json,image/png" />

分析:

1.port:服務埠TCP埠,預設值為8089;

2.connectionTimeout:設定連線的超時值,單位毫秒,預設值為60000;

3.keepAliveTimeout:當http使用keep-alive時在tcp的一個連線中可以接收多個request,意思就是兩個request間的時間限定最大保持時間,超過這個時間,連線將斷開,單位毫 秒,預設使用的是connectionTimeout的時間;

4.maxKeepAliveRequests:在伺服器關閉前,該連線最大支援的請求數,超過該請求數的連線也將被關閉,設定為1表示禁用,設定為-1表示不限個數,預設值為100;

5.maxHttpHeaderSize:HTTP請求和響應頭的最大量,單位位元組,預設值為4096位元組;

6.URIEncoding:指定tomcat的url編碼格式;

7.enableLookups:呼叫request、getRemoteHost()執行DNS查詢,以返回遠端主機的主機名,如果設定為false,則直接返回IP地址;

8.acceptCount:當所以可以處理的執行緒正在使用的時候,在佇列中排隊請求的最大連線數,當佇列已滿,所有請求都將被拒絕,預設值為100;

9.disableUploadTimeout:上傳時是否使用超時機制,以是servlet有較長時間來完成它的執行,預設值為false;

10.redirectPort:如聯結器不支援SSL請求,如收到SSL請求,Catalina容器將會自動重定向指定的埠號,讓其進行處理;

11.compression:是否對響應的資料進行壓縮,off:禁止壓縮,on:允許壓縮(文字將被壓縮),force:表示所有情況下都進行壓縮,預設值為off;

12.compressionMinSize:壓縮的大小;

13.noCompressionUserAgents:不啟用壓縮的瀏覽器;

14.compressableMineType:MIME的列表,預設以逗號分隔,預設值為text/html,text/xml,text/plain;


相關推薦

tomcat7優化配置執行

執行緒池指web請求負載的數量,使用執行緒池,可以用較少的執行緒處理較多的訪問,提高tomcat處理請求的能力 具體步驟如下: 在tomcat目錄下的conf中的server.xml中進行配置,一共

【本人禿頂程式設計師】Tomcat優化配置執行

←←←←←←←←←←←← 快,點關注! 簡介 執行緒池作為提高程式處理資料能力的一種方案,應用非常廣泛。大量的伺服器都或多或少的使用到了執行緒池技術,不管是用Java還是C++實現,執行緒池都有如下的特點: 執行緒池一般有三個重要引數: 最大執行緒數。在程式執行的任何時候

Tomcat優化配置執行高併發連線

原理:在使用和配置tomcat的執行緒池之前明白執行緒池的原理,類似於作業系統中的緩衝區的概念,它的流程如下:先啟動若干數量的執行緒,並讓這些執行緒都處於睡眠 狀態,當客戶端有一個新請求時,就會喚醒執行緒池中的某一個睡眠執行緒,讓它來處理客戶端的這個請求,當處理完這個請求後,

Tomcat優化配置執行

原文地址:https://bbs.aliyun.com/read/307481.html?spm=5176.bbsl239.0.0.nZJ2Kx&fpage=2 簡介執行緒池作為提高程式處理資料能力的一種方案,應用非常廣泛。大量的服務器都或多或少的使用到了執行緒池技

從零開始學多執行自定義配置執行(七)

等待其他資源,可能會產生執行緒飢餓死鎖 線上程池中如果一個任務依賴於其它任務的執行,就可能產生死鎖.在一個單執行緒化的Executor中,提交兩個任務,任務二滯留在工作佇列中等待第一個任務完成,但是第一個任務不會完成,因為它在等待第二個任務的完成(需要第二個任務執行的結果進行運算),這就會發生死鎖. 在一個大

Java併發程式設計的藝術九----執行

第一:降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷燬造成的消耗。 第二:提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。 第三:提高執行緒的可管理性。執行緒是稀缺資源,如果無限制地建立,不僅會消耗系統資源, 還會降低系統的穩定性,使用執行緒池可以進行統

Tomcat優化實戰之一 執行優化 多看官方文件

Tomcat優化實戰之一 執行緒池的優化 加多人幹活 maxConnections受作業系統核心影響 openFiles 控制代碼 ulimit -a ulimit -a 命令檢視linux centos下的 1024預設 修改openFiles 伺服器的保護

【小家java】Java執行---ForkJoinPool執行的使用以及原理

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

muduo_base程式碼剖析ThreadPool執行

1. 執行緒池 執行緒池的問題本質上也是生產者消費者模型問題 生產者生產產品的過程,實際上就是由程式設計師向任務佇列中新增任務的過程(需要程式設計師控制),實現程式碼見下: 1. print函式是程式設計師自己手動定義的任務函式 2. run(Task

Java多執行-----執行的使用,原理以及舉例實現(三)(四):使用樣例及如何配置執行大小

三.使用示例   前面我們討論了關於執行緒池的實現原理,這一節我們來看一下它的具體使用: public class Test { public static void main(String[] args) { ThreadPoolExe

Java併發程式設計深入執行原理及實現

Java執行緒池在實際的應用開發中十分廣泛。雖然Java1.5之後在JUC包中提供了內建執行緒池可以拿來就用,但是這之前仍有許多老的應用和系統是需要程式設計師自己開發的。因此,基於執行緒池的需求背景、技術要求瞭解執行緒池原理和實現,一方面可以更為深刻理解Java多執行緒開發,有助於解決業務系統中因為執行緒問題

Java併發任務處理Executor執行

乾貨 import org.junit.After; import org.junit.Test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public c

JAVA多執行——常用執行

執行緒池 學習了執行緒池的基本原理後,可以理解執行緒池的型別控制,主要是通過中心池大小,和最大執行緒池大小,以及儲存工作任務的佇列決定。JDK中為我們封裝了常用的四種執行緒池。 在JDK幫助文件中,有如此一段話: “強烈建議程式設計師使用較為方便的Exec

一步一步跟我學習lucene(6)---lucene索引優化執行建立索引

這兩天工作有點忙,部落格更新不及時,請大家見諒; 前面瞭解到lucene在索引建立的時候一個IndexWriter獲取到一個讀寫鎖,這樣勢在lucene建立大資料量的索引的時候,執行效率低下的問題; 磁碟空間大小,這個直接影響索引的建立,甚至會造成索引寫入提示完成,但是沒

spring 配置 執行並使用 springtest 進行測試

    在 applicationContext.xml 中配置spring執行緒池: <!-- 包路徑掃描 --> <context:component-scan base-package="spring.task"/>

JDK併發執行四(自定義ThreadFactory)

ThreadPoolExecutor的建構函式中,執行緒的生成有ThreadFactory生成,建構函式中的ThreadFactory預設為Eexecutors.defaultThreadFactory()。自定義ThreadFactory可以根治執行緒池究竟何時建立了多少執

效能測試tomcat執行設定原理

該設定多大的執行緒池呢?以及根據什麼原則來設計這個執行緒池呢?   思路:   tomcat接受一個request後處理過程中,會涉及到cpu和IO時間。其中IO等待時間,cpu被動放棄執行,其他執行緒就可以利用這段時間片進行操作。所以我們可以採用伺服器IO優化的通用

Androidjava執行總結

執行緒池 Android培訓實戰教程裡面,耗時的網路操作,都會開子執行緒,在程式裡面直接開過多的執行緒會消耗過多的資源,在眾多的開源框架中也總能看到執行緒池的蹤影,所以執行緒池是必須要會把握的一個知識點; 執行緒執行機制 ·         開啟執行緒過多,會消耗cpu

Spring中配置執行ThreadPoolExecutor參考

<bean id="executorService" class="java.util.concurrent.ThreadPoolExecutor"> <constructor-

專案中可配置執行的實現

執行緒池在專案中的使用一個專案中可能多次使用到執行緒池,比如發郵件的時候需要使用執行緒池,執行訊息入庫的時候可能需要執行緒池,我們可以通過資料庫配置來實現執行緒池使用1.資料庫表中中配置執行緒池的核心引數主要包括以下引數:執行緒池名:excutor_name核心執行緒數:co