最近後臺有個web服務器總是不正常,java線程一會就超出1000,而服務器設置的最大線程就是1000,一旦超出後,有用戶訪問到這臺服務器就提示503錯誤,一時半會找不到緣由,直接停掉吧對其它服務器壓力會增大,因而就想了個臨時解決辦法,經過腳原本判斷請求時間,由於是在內網運行,因此這個腳本就應運誕生了。。
下面是腳本,有興趣的你們能夠看看。。高手就能夠直接忽略了,寫的很爛,我一貫腳本能力比較差,除了被逼無奈的時候纔去寫~
java
- #!/bin/bash
- WEB_IPS=192.168.0.100
- for (( i=1;i<=5;i++ ))
- do
- /usr/bin/curl -o /dev/null -s -w "%{time_total}\n" -x $WEB_IPS:80 "http://www.baidu.com" |cut -d. -f1 >>/scripts/1.txt
- done
- TIME=`sort -n /scripts/1.txt |tail -1`
- if [ $TIME -gt 1 ];then
- echo "java theads too many is `date '+%Y-%m-%d %H:%m:%s'`,service will restart" >>/scripts/java.txt
- service nginx stop >>/scripts/java.txt
- service tomcatd stop >>/scripts/java.txt
- sleep 3
- rm -rf /opt/tomcat/work/*
- service tomcatd start >>/scripts/java.txt
- service nginx start >>/scripts/java.txt
- fi
- rm -f /scripts/1.txt