函数内部有太大的数组,导致异常死机的问题
Posted 乔海权_杭州
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数内部有太大的数组,导致异常死机的问题相关的知识,希望对你有一定的参考价值。
如果一个函数内部有太大的数据,可能会导致异常死机,之前调试代码遇到过几次。
void adc_test(void)
{
char adc_data[8192] = {0};
}
交换机死机,导致ceph ( requests are blocked ) 异常解决方法
问题描述:
万兆交换机死机后,导致在交换机上的ceph 的cluster网络会中断,用户正在对数据块的访问没有完成导致请求被blocked,同时部分pg会处于不同步状态,因此交换机重启后,通过ceph health会发现ceph集群不在OK 状态
health HEALTH_ERR 1 pgs inconsistent; 1 pgs repair; 2 requests are blocked > 32 sec; 1 scrub errors
pg 6.89 is active+clean+inconsistent, acting [12,1,10]
1 ops are blocked > 33554.4 sec
1 ops are blocked > 33554.4 sec on osd.16
1 osds have slow requests
通过以上命令可以发现这里有部分osd(osd.16)出现请求被blocked,重启这些osd,让ceph自己进行恢复:
/etc/init.d/ceph stop osd.16
/etc/init.d/ceph start osd.16
系统会对该 osd 执行 recovery 操作, recovery 过程中, 会断开 block request, 那么这个 request 将会重新请求 mon 节点, 并重新获得新的 pg map, 得到最新的数据访问位置, 从而解决上述问题
一段时间后,可以通过ceph -s 查看ceph的状态为ok
ceph恢复正常后,需要重启虚拟机,有些系统版本的虚拟机可以不用重启,例如ubuntu14.04.
可以通过进入虚拟机来查看是否正常来判断是否需要重启
本文出自 “月童” 博客,请务必保留此出处http://littlefive.blog.51cto.com/6440205/1894194
以上是关于函数内部有太大的数组,导致异常死机的问题的主要内容,如果未能解决你的问题,请参考以下文章
Erlang timer:sleep(1000) 导致线程死机