程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql裡面執行show processlist出現很多Sleep狀態的線程

Mysql裡面執行show processlist出現很多Sleep狀態的線程

編輯:MySQL綜合教程

Mysql裡面執行show processlist出現很多Sleep狀態的線程   由於程序設計的Bug,導致目前這個項目使用的數據庫中有很多Sleep狀態的線程。找了很多解決辦法,還沒發現最終有效的解決方案。只能臨時使用如下方法:   編寫shell文件,如killSleepProcess.sh  

[plain] 
while :  
do  
  n=`mysqladmin -uroot -p*** processlist | grep -i sleep | wc -l`  
  date=`date +%Y%m%d\[%H:%M:%S]`  
  echo $n  
  
  if [ "$n" -gt 10 ]  
  then  
    for i in `mysqladmin -uroot -p*** processlist | grep -i sleep | awk '{print $2}'`  
    do  
      mysqladmin  -uroot -p*** kill $i  
    done  
    echo "sleep is too many i killed it" >> /root/tmp/sleep.log  
    echo "$date : $n" >> /root/tmp/sleep.log  
  fi  
sleep 120 #每隔120 秒 執行一次  
done  

 

上面shell代碼的結果是:將show processlist查詢出的所有為Sleep狀態的線程kill掉    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved