我又另新写了一个帖子,请教xtang:
我的问题:
1:在我的qnx网络中有10个节点,node1,node2…node10.
当10个节点都运行起来之后,通常来说2个月左右或者更长或者更短,很随机性的,总会有1个2个 node死机!
2:分析是dead lock造成的问题
死锁的原因可能是:
软件:共享内存,读写文件,qmessage,锁机制等等引起的?
硬件:nand flash等,因为代码总是读写文件,是否因为磁盘碎片等等问题造成的?
3:当死机的时候
死机node 鼠标,键盘不好用了,硬盘处于一直busy红灯的状态
用别的机器使用ftp ,telnet,ping等cmd 连接死机node,根本没有反应!
4:假设当node2 死机了
我在node3上进行操作,输入命令 ls //2, 也没有反应
这个现象可能是由于程序不断的消耗系统资源,导致qnx kernel crash
由于qnx4.25是个微内核机制,很不容易导致死机的,可是我的node确死机了,
请各位高人指教,说说都可能什么原因引起呢,造成这种严重的big bug。
xtang回答:
这个比较麻烦,没有特定的模式。
-
看看是不是硬件原因。是不是10个节点任意死机,还是死机总是发生在某几个node上?
-
如果是PS2键盘,可以试试按键盘上的CAPS LOCK,看键盘上的指示灯有没有变化。如果有,这告诉你内核还能正常响应中断,只是输出输入被阻住了。
3)如果是硬盘一直busy,最有可能的是驱动在中断处理中出了问题。先看看驱动有什么参数可调,然后看看有没有驱动可以升级。或是换个硬盘试试。
4)想想有什么可以纠错的方法。在node里加监控程序,如果发现node工作不正常就重启什么的。或者是在网络上再增加一个监控node,如果发现不正常的node就强行重启。
我的回答:
-
看看是不是硬件原因。是不是10个节点任意死机,还是死机总是发生在某几个node上?
死机是随机性的,没有规律可言 -
如果是PS2键盘,可以试试按键盘上的CAPS LOCK,看键盘上的指示灯有没有变化。如果有,这告诉你内核还能正常响应中断,只是输出输入被阻住了。
没有变化了
3)如果是硬盘一直busy,最有可能的是驱动在中断处理中出了问题。先看看驱动有什么参数可调,然后看看有没有驱动可以升级。或是换个硬盘试试。
应用软件导致node死机的可能性已经排除掉了
我们的这个设备用了2块IDE硬盘, 其中一个是flash硬盘,现在6成的把握
说是SSD读写的问题, 我们自己也做了个测试程序,把flash硬盘的文件系统直接写崩溃了,但是node就是没死掉.
主板芯片组是:intel 80201DB(intel ICH4)
nand flash是:WDC SSD-3000p
4)想想有什么可以纠错的方法。在node里加监控程序,如果发现node工作不正常就重启什么的。或者是在网络上再增加一个监控node,如果发现不正常的node就强行重启。
正在找原因,实在不行,只能这么做了
请回答,感激不尽