日期:2014-05-16  浏览次数:20632 次

tuxedo问题
最近遇到个问题,具体问题如下:

在前置服务器上,跑了个用C写的socket通讯程序(程序可以允许并发的),其中用到了tuxedo9.1 系统是linux red hat 5.2的

现在出现了个奇怪的情况,可能是由于交易并发量比较大,大概每1个星期系统都是死机一次(具体死机频率和交易量有关系,量大的机器死机更频繁)

具体死机的表现就是远程ssh,ftp都无法登陆,但是程序的socket监听任然存在,如果此时继续发起请求,前置监听可以收到请求,但没有办法转发到后台服务器(后台服务器是aix系统 tuxedo9.1,也是用C开发的)
此时如要查看前置机情况,必须直接在机器旁边操作,查看系统情况,也没有发现异常情况(没有发现如内存完全吃完的状况)

因为有多台前置机,所以观察了下每次发生问题时,都是一台前置出问题,但是其他机器均能正常交易,故猜测是前置机的问题(没有办法确定问题到底是出在哪里,苦恼啊)

另外,补充一点,也怀疑过是不是硬件与系统的问题,咨询了硬件厂商,给予的回复是推荐使用redhat 5.5以上的版本,但是测试使用了以后,也没有能够解决问题,问题依旧

望各位大虾给予帮助,万分感激。

------解决方案--------------------
Jan 2 04:10:01 localhost mcstransd: accept() failed: Too many open files in system
说系统中打开的描述符太多了

会不会应用程序有一些不必要的描述符没有关闭?
用lsof 命令看看