一. CPU 过高或死锁导致系统卡死
1. CPU占用过高
(1)开线程太多导致CPU占用过高,系统卡死
解决:优化应用层业务逻辑,有些业务不必开线程就不开
(2)频繁清缓存导致读spi-flash频繁,引起CPU过高
解决:在内核中文件系统部分进行处理,不去清缓存,然后在应用层用后台服务进程清缓存。这样可能导致系统内存不够用,这样就需要再对系统内存进行优化
2. CPU死锁
(1)Spinlock+死等导致死锁
(2)应用层pthread_mutex_lock死锁
3. CPU过热导致系统启动失败
(1)CPU超过BIOS的设定阈值导致内核启动失败
(2)CPU确实太热,加风扇、扇热片,或者对结构进行优化
4. 灰尘太多、环境恶劣等因素导致电源异常
二. 内存问题导致系统死机
1. 虚拟内存耗尽
(1)线程开太多,导致虚拟内存到达3G,出现主程序挂死,但系统不会死机
确认方法:假如系统进程号为pid,那么查看/proc/pid/status可以看到开的线程数及虚拟、物理内存。另外用top也可以看到虚拟内存或物理内存,有的Busybox编译问题,看不到物理内存占用情况,这样就要根据/proc/pid/status,或者查看如下字段:
cat /proc/pid/stat | awk -F" " ‘{print "virt:"$23}‘
cat /proc/pid/stat | awk -F" " ‘{print "rss:&