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優化的通用
Android之java執行緒池總結
執行緒池 Android培訓實戰教程裡面,耗時的網路操作,都會開子執行緒,在程式裡面直接開過多的執行緒會消耗過多的資源,在眾多的開源框架中也總能看到執行緒池的蹤影,所以執行緒池是必須要會把握的一個知識點; 執行緒執行機制 · 開啟執行緒過多,會消耗cpu
Spring中配置執行緒池ThreadPoolExecutor參考
<bean id="executorService" class="java.util.concurrent.ThreadPoolExecutor"> <constructor-
專案中可配置執行緒池的實現
執行緒池在專案中的使用一個專案中可能多次使用到執行緒池,比如發郵件的時候需要使用執行緒池,執行訊息入庫的時候可能需要執行緒池,我們可以通過資料庫配置來實現執行緒池使用1.資料庫表中中配置執行緒池的核心引數主要包括以下引數:執行緒池名:excutor_name核心執行緒數:co