ttserver(Tokyo Tyrant)生产故障解决一例!

ttserver(Tokyo Tyrant)生产故障解决一例
############################################
#date:2011-5-23
#作者:老男孩
#QQ:31333741 MAIL:[email protected]
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即将开放)
############################################
 

 


提示:Tokyo Tyrant是一个支持高并发的分布式持久存储系统,类似的memcachedb(注意:不是memcache),其详细细节,请参考网上其他文章或参考[老男孩Linux私塾网站运维课程系列]-Tokyo Tyrant双主多从高可用集群部署及调优高并发应用实践

现象:系统意外宕机,导致启动ttserver报错(已加为开机自启动),如下所示:
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:30:00+08:00       ERROR   the process 3774 may be already running

实际解决步骤:
1.报错提示已经运行了,那就看看是否存在该服务端口吧
[root@oldboy-ttserver ~]# lsof -i tcp:13000
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:30:32+08:00       ERROR   the process 3774 may be already running
#====端口没有,就是起不来。

2.提示进程号为3774,那就检查下进程吧,依然没有
[root@oldboy-ttserver ~]# ps -ef|grep 3774
root     30392 29936  0 15:30 pts/0    00:00:00 grep 3774
提示:比较奇怪吧。。继续。

3.查看下pid文件,果然有进程ID存在
[root@oldboy-ttserver ~]# cat /data/snsttserver/snsttserver.pid
3774
提示:这是ttmasterctl控制脚本(我自己写的ttserver启动脚本)里加的,用来记录TTSERVER 进程 pid的

4.清空snsttserver.pid
[root@oldboy-ttserver ~]# > /data/snsttserver/snsttserver.pid
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:31:26+08:00       ERROR   the process 0 may be already running
提示:还是报错,看来有这个PID file就无法启动了。

5.既然不给面子,就干掉他(指snsttserver.pid文件)
[root@oldboy-ttserver ~]# rm -f /data/snsttserver/snsttserver.pid
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
#===>启动成功

[root@oldboy-ttserver ~]# netstat -lnt|grep 13000
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 0.0.0.0:13000               0.0.0.0:*                   LISTEN     

[root@oldboy-ttserver ~]# lsof -i tcp:13000
COMMAND    PID USER   FD   TYPE DEVICE SIZE NODE NAME
ttserver 30406 root   20u  IPv4 829766       TCP *:13000 (LISTEN)

服务也随之正常。。。

你可能感兴趣的:(职场,ttserver,休闲,tokyo,老男孩,Tyrant)