文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>resin每个端口出现两个进程

resin每个端口出现两个进程

时间:2010-08-20  来源:skybin090804

先上故障现象图:
# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 192.168.238.73:9505         0.0.0.0:*                   LISTEN      -                  
tcp        0      0 0.0.0.0:9090                0.0.0.0:*                   LISTEN      31812/java         
tcp        0      0 0.0.0.0:35718               0.0.0.0:*                   LISTEN      31812/java         
tcp        0      0 127.0.0.1:6600              0.0.0.0:*                   LISTEN      31725/java         
tcp        0      0 0.0.0.0:35721               0.0.0.0:*                   LISTEN      31814/java         
tcp        0      0 127.0.0.1:6800              0.0.0.0:*                   LISTEN      31814/java         
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      -                  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1993/sshd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                  
tcp        0      0 0.0.0.0:35710               0.0.0.0:*                   LISTEN      31726/java         
tcp        0      0 0.0.0.0:35711               0.0.0.0:*                   LISTEN      31725/java         
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               1878/syslogd       
udp        0      0 0.0.0.0:161                 0.0.0.0:*                               1982/snmpd 

从top中看到的现象是:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 xx yy       25   0 4844m 4.2g 9.9m S  775 71.6 371:34.21 java            
xx yy       25   0 5844m 4.2g 9.9m S  775 71.6 371:34.21 java   
最多尝试过同时出现3个java进程。

从现象中可看到,resin9090 6600  6800 端口都让其自己的子进程给占用了,这种情况下还能正常提供服务,但负载就飙升得很厉害。
这个应用是提供搜索服务,在建动态索引和建静态所以的时候resin会比较繁忙。在这过程中对resin发出停止的信号会不成功。
以下是停止resin的脚本:
if [[ -n "$RESIN_USER" && $USER != $RESIN_USER ]]; then
          su $RESIN_USER -c "$JAVA $JVM_ARG -jar $RESIN_HOME/lib/resin.jar $ARGS stop"  1>$RESIN_HOME/log/start.info 2>&1
          ret=$?
        else
          $JAVA $JVM_ARG -jar $RESIN_HOME/lib/resin.jar $ARGS stop  1>$RESIN_HOME/log/start.info 2>&1
          ret=$?
        fi

        ps auxwww|grep $SEARCH_STR >/dev/null
        if [ $? = 0 ]; then
                PID1=`ps auxwww|grep $SEARCH_STR |egrep -v "ResinWatchdogManager|grep" |awk '{ print $2 }'`
                PID2=`ps auxwww|grep $SEARCH_STR |grep "ResinWatchdogManager" |grep -v grep |awk '{ print $2 }'`
          if [ -n "$PID1" ];then
                kill -9 $PID1 $PID2
                if [ $? = 0 ];then
                  action $"Stopping $prog: " /bin/true
                else
                  action $"Stopping $prog: " /bin/false
                fi
          else
                action $"Starting $prog: " /bin/true
          fi
        else
                action $"Starting $prog: " /bin/true
        fi
在使用resin。jar停止resin不成功的时候,使用kill -9 对此进行强制关闭,这强制的动作后,特殊情况下会出现,主进程给杀死,由相应主进程派生
出来的子进程接替了主进程的地址,这就造成了图中的现象。

现在的办法是检测到这种情况restart一次resin


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载