【線上等】關於tomcat最大執行緒數滿導致服務停止
P4 3.6
記憶體 1G
硬碟 SCSI 140 G 分割槽情況 /boot(500M) /SWAP (2048M) /(剩餘全部磁碟空間)
伺服器是新的HP全新配置
伺服器的WEB配置情況:紅旗LINUX5.0服務亞洲版+TOMCAT5.5.17+MYSQL5.0.22+JDK1.5.0.6
TOMCAT和 MYSQL以及JD的安配置過程我就不說了
現在的問題是:開發組十幾個人點選,頻繁重新整理(遨遊瀏覽器有個自動重新整理的功能^_^,我們每臺機器開了網站上15個左右視窗,設定成每隔10秒自動重新整理),結果不到十分鐘就TOMCAT就當機了
終端顯示錯誤如下:
嚴重:All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
程式是用的hibernate + spring
Connector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
我試圖把maxThreads改為999
Connector port="80"
maxThreads="999" minSpareThreads="25" maxSpareThreads="999"
enableLookups="false" redirectPort="8443" acceptCount="999"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
再測試 ,十多分鐘後問題依舊 報錯如下:
嚴重:All threads (999) are currently busy, waiting. Increase maxThreads (999) or check the servlet status
這個已經最大了 web server允許的最大連線數還受制於作業系統的核心引數設定,通常Windows是2000個左右,Linux是1000個左右。也就是說maxThreads最大連線數,不能高於一千。
並且我在catalina.sh中配置了JAVA_OPTS='-Xms256m -Xmx512m'最大記憶體
MYSQL的配置檔案 /etc/my.cnf
# The following options will be passed to all MySQL clients
[client]
password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
back_log = 500
max_connections = 1024
default-character-set = gb2312
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
safe-updates
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
問題 :大家看是什麼問題,是TOMCAT的配置問題,還是MYSQL的問題
還是程式的問題,我們好象是用的tomcat自己帶的資料庫連線池,沒有用到
MYSQL官方網站上的連線池的jar檔案,不知道是不是這個的問題。
相關文章
- mysql關於最大連線數、最大併發執行緒數的區別MySql執行緒
- MySQL連線數過多導致服務無法正常執行MySql
- 證明執行緒池ThreadPoolExecutor的核心執行緒數,最大執行緒數,佇列長度的關係執行緒thread佇列
- docker-執行tomcat服務DockerTomcat
- 【java多執行緒】(二)執行緒停止Java執行緒
- java 停止執行緒Java執行緒
- 執行緒池中的最大執行緒數、核心執行緒數和佇列大小的合理設定執行緒佇列
- 多執行緒併發篇——如何停止執行緒執行緒
- pymysql 非執行緒安全導致的故障.MySql執行緒
- Java中命名執行器服務執行緒和執行緒池Java執行緒
- 逆天啦!一鍵執行混沌測試,服務會掛的,需要跑路嗎?線上等!
- 記一次生產環境tomcat執行緒數打滿情況分析Tomcat執行緒
- HttpClient引發的執行緒數過多導致應用崩潰HTTPclient執行緒應用崩潰
- 玩轉java多執行緒 之多執行緒基礎 執行緒狀態 及執行緒停止實戰Java執行緒
- 安全優雅地停止執行緒執行緒
- tomcat連線處理機制和執行緒模型Tomcat執行緒模型
- WebMagic多執行緒導致註解失效問題Web執行緒
- @Transactional 中使用執行緒鎖導致了鎖失效執行緒
- 怎樣停止一個正在執行的執行緒執行緒
- 關於沒有熔斷降級導致服務重啟問題
- Java執行緒池核心執行緒用盡後為何優先排隊而不是繼續建立執行緒直至最大執行緒數?Java執行緒
- Arthas | 定位線上 Dubbo 執行緒池滿異常執行緒
- .net使用Task多執行緒執行任務 .net限制執行緒數量執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- 併發、多執行緒、HTTP連線數有何關係?執行緒HTTP
- Json序列化與反序列化導致多執行緒執行速度和單執行緒執行速度一致問題JSON執行緒
- 關於redis單執行緒的分析Redis執行緒
- 關於執行緒設計的感受執行緒
- java基礎 關於執行緒安全Java執行緒
- 在被線上大量日誌輸出導致效能瓶頸,執行緒Block的坑執行緒BloC
- 使用多執行緒提高rest服務效能執行緒REST
- openGauss執行緒池相關引數執行緒
- 動態執行緒池(DynamicTp)之動態調整Tomcat、Jetty、Undertow執行緒池引數篇執行緒TomcatJetty
- 記一次執行緒池配置導致的ThreadLocal清空執行緒thread
- 如何優雅的停止一個執行緒?執行緒
- 故障分析 | Federated 儲存引擎表導致監控執行緒處於 Opening table 狀態儲存引擎執行緒
- 關於執行緒池的面試題執行緒面試題
- 關於執行緒的幾個函式執行緒函式
- 記錄一個LifeCycle 多執行緒使用導致的崩潰執行緒