導航:首頁 > 編程系統 > linuxtomcat啟動線程

linuxtomcat啟動線程

發布時間:2024-06-10 22:27:18

❶ 怎樣判斷tomcat線程池太小

web server允許的最大線程連接數還受制於操作系統的內核參數設置,通常Windows是2000個左右,linux是1000個左右。

1.編輯tomcat安裝目錄下的conf目錄下的server.xml文件
在tomcat配置文件server.xml中的<Connector />配置中,和連接數相關的參數有:
maxThreads="150" 表示最多同時處理150個連接,Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值200。
minSpareThreads="25" 表示即使沒有人使用也開這么多空線程等待
maxSpareThreads="75" 表示如果最多可以空75個線程,例如某時刻有80人訪問,之後沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的。 (一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值50。


acceptCount="100" 當同時連接的人數達到maxThreads時,還可以接收排隊的連接數量,超過這個連接的則直接返回拒絕連接。(指定當任何能夠使用的處理請求的線程數都 被使用時,能夠放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。 )
其中和最大連接數相關的參數為maxThreads和acceptCount。如果要加大並發連接數,應同時加大這兩個參數。
web server允許的最大連接數還受制於操作系統的內核參數設置,通常Windows是2000個左右,Linux是1000個左右。tomcat5中的配置示例:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
acceptCount="100"/>
對於其他埠的偵聽配置,以此類推。

線程池一般有三個重要參數:
1. 最大線程數。在程序運行的任何時候,線程數總數都不會超過這個數。如果請求數量超過最大數時,則會等待其他線程結束後再處理。
2. 最大共享線程數,即最大空閑線程數。如果當前的空閑線程數超過該值,則多餘的線程會被殺掉。
3. 最小共享線程數,即最小空閑線程數。如果當前的空閑數小於該值,則一次性創建這個數量的空閑線程,所以它本身也是一個創建線程的步長。

線程池有兩個概念:
1. Worker線程。工作線程主要是運行執行代碼,有兩種狀態:空閑狀態和運行狀態。在空閑狀態時,類似「休眠」,等待任務;處理運行狀態時,表示正在運行任務(Runnable)。
2. 輔助線程。主要負責監控線程池的狀態:空閑線程是否超過最大空閑線程數或者小於最小空閑線程數等。如果不滿足要求,就調整之。

來 看一下線程池究竟是怎麼一回事?其實線程池的原理很簡單,類似於操作系統中的緩沖區的概念,它的流程如下:先啟動若干數量的線程,並讓這些線程都處於睡眠 狀態,當客戶端有一個新請求時,就會喚醒線程池中的某一個睡眠線程,讓它來處理客戶端的這個請求,當處理完這個請求後,線程又處於睡眠狀態。可能你也許會 問:為什麼要搞得這么麻煩,如果每當客戶端有新的請求時,我就創建一個新的線程不就完了?這也許是個不錯的方法,因為它能使得你編寫代碼相對容易一些,但 你卻忽略了一個重要的問題??性能!就拿我所在的單位來說,我的單位是一個省級數據大集中的銀行網路中心,高峰期每秒的客戶端請求並發數超過100,如果 為每個客戶端請求創建一個新線程的話,那耗費的CPU時間和內存將是驚人的,如果採用一個擁有200個線程的線程池,那將會節約大量的的系統資源,使得更 多的CPU時間和內存用來處理實際的商業應用,而不是頻繁的線程創建與銷毀。

介紹了tomcat、jetty和resin三種java Web容器的線程池後,按照慣例應該比較它們的優缺點。不過先總結線程池的特點。

線程池作為提高程序處理數據能力的一種方案,應用非常廣泛。大量的伺服器都或多或少的使用到了線程池技術,不管是用Java還是C++實現,線程池都有如下的特點:
線程池一般有三個重要參數:
1. 最大線程數。在程序運行的任何時候,線程數總數都不會超過這個數。如果請求數量超過最大數時,則會等待其他線程結束後再處理。
2. 最大共享線程數,即最大空閑線程數。如果當前的空閑線程數超過該值,則多餘的線程會被殺掉。
3. 最小共享線程數,即最小空閑線程數。如果當前的空閑數小於該值,則一次性創建這個數量的空閑線程,所以它本身也是一個創建線程的步長。

線程池有兩個概念:
1. Worker線程。工作線程主要是運行執行代碼,有兩種狀態:空閑狀態和運行狀態。在空閑狀態時,類似「休眠」,等待任務;處理運行狀態時,表示正在運行任務(Runnable)。
2. 輔助線程。主要負責監控線程池的狀態:空閑線程是否超過最大空閑線程數或者小於最小空閑線程數等。如果不滿足要求,就調整之。

1、修改啟動時內存參數、並指定JVM時區 (在windows server 2008 下時間少了8個小時):在Tomcat上運行j2ee項目代碼時,經常會出現內存溢出的情況,解決辦法是在系統參數中增加系統參數:window下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;
一定加在catalina.bat最前面。linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"注意:前後二者區別,有無set,有無雙引號。

2、線程池配置(Tomcat6下)

使用線程池,用較少的線程處理較多的訪問,可以提高tomcat處理請求的能力。使用方式:

首先。打開/conf/server.xml,增加

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

最大線程500(一般伺服器足以),最小空閑線程數20,線程最大空閑時間60秒。

然後,修改<Connector ...>節點,增加executor屬性,如:

<Connector executor="tomcatThreadPool"
port="80"

protocol="HTTP/1.1"

maxThreads="600"

minSpareThreads="100"

maxSpareThreads="300"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="443"
....../>

maxThreads:Tomcat可創建的最大的線程數,每一個線程處理一個請求;

minSpareThreads:最小備用線程數,tomcat啟動時的初始化的線程數;

maxSpareThreads:最大備用線程數,一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程;

acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,就是被排隊的請求數,超過這個數的請求將拒絕連接。

connnectionTimeout:網路連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。
enableLookups:是否允許DNS查詢注意:可以多個connector公用1個線程池。3、調整連接相關Connector的參數:

<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="443"
maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>參數說明:

connectionTimeout - 網路連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。
keepAliveTimeout - 長連接最大保持時間(毫秒)。此處為15秒。
maxKeepAliveRequests - 最大長連接個數(1表示禁用,-1表示不限制個數,默認100個。一般設置在100~200之間) the maximum number of HTTP requests that can be held in the pipeline until the connection is closed by the server. Setting this attribute to 1 disables HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining. Setting this to -1 allows an unlimited number of pipelined or keep-alive HTTP requests. If not specified, this attribute is set to 100.
maxHttpHeaderSize - http請求頭信息的最大程度,超過此長度的部分不予處理。一般8K。
URIEncoding - 指定Tomcat容器的URL編碼格式。
acceptCount - 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理,默認為10個。defines the maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full are refused. The default value is 10.
disableUploadTimeout - 上傳時是否使用超時機制
enableLookups - 是否反查域名,取值為:true或false。為了提高處理能力,應設置為false
bufferSize - defines the size (in bytes) of the buffer to be provided for input streams created by this connector. By default, buffers of 2048 bytes are provided.
maxSpareThreads - 做多空閑連接數,一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程 the maximum number of unused request processing threads that are allowed to exist until the thread pool starts stopping the unnecessary threads. The default value is 50.
maxThreads - 最多同時處理的連接數,Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。。 the maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200.
minSpareThreads - 最小空閑線程數,Tomcat初始化時創建的線程數 the number of request processing threads that are created when this Connector is first started. The connector will also make sure it has the specified number of idle processing threads available. This attribute should be set to a value smaller than that set for maxThreads. The default value is 4.
minProcessors - 最小空閑連接線程數,用於提高系統處理性能,默認值為10。(用於Tomcat4中)
maxProcessors - 最大連接線程數,即:並發處理的最大請求數,默認值為75。(用於Tomcat4中)
備註:

Tomcat4中可以通過修改minProcessors和maxProcessors的值來控制線程數。

在Tomcat5+主要對以下參數調整
maxThreads
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。
acceptCount
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。
connnectionTimeout
網路連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。
minSpareThreads
Tomcat初始化時創建的線程數。
maxSpareThreads
一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。

❷ 怎樣在linux下啟動tomcat

Linux下tomcat服務的啟動、關閉與錯誤跟蹤,使用PuTTy遠程連接到伺服器以後,通常通過以下幾種方式啟動關閉tomcat服務:
切換到tomcat主目錄下的bin目錄(cd usr/local/tomcat/bin)
1,啟動tomcat服務
方式一:直接啟動 ./startup.sh
方式二:作為服務啟動 nohup ./startup.sh &
方式三:控制台動態輸出方式啟動 ./catalina.sh run 動態地顯示tomcat後台的控制台輸出信息,Ctrl+C後退出並關閉服務
解釋:
通過方式一、方式三啟動的tomcat有個弊端,當客戶端連接斷開的時候,tomcat服務也會立即停止,通過方式二可以作為linux服務一直運行
通過方式一、方式二方式啟動的tomcat,其日誌會寫到相應的日誌文件中,而不能動態地查看tomcat控制台的輸出信息與錯誤情況,通過方式三可以以控制台模式啟動tomcat服務,
直接看到程序運行時後台的控制台輸出信息,不必每次都要很麻煩的打開catalina.out日誌文件進行查看,這樣便於跟蹤查閱後台輸出信息。tomcat控制台信息包括log4j和System.out.println()等輸出的信息。
2,關閉tomcat服務
./shutdown.sh

❸ linux 啟動tomcat運行後 有多個進程 線程池

那是你每次啟動tomcat後,沒有正確結束進程導致的。

啟動tomcat用tomcat目錄中的腳本startup.sh,但結束時,用自帶的shutdown.sh卻是有問題的;如果不會修改shutdown.sh腳本,可以如下結束:

  1. 查看Java進程:ps -ef|grep java,得到tomcat進程的進程號;

  2. 殺死tomcat進程號:kill -9 xxxx

閱讀全文

與linuxtomcat啟動線程相關的資料

熱點內容
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341

友情鏈接