最近后台有个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