1. 服务器宕机了怎么办?
1.查看监控系统的历史纪录,图表
2.机器能起来上去查看日志相关信息
启动机器,看能否登陆,如果能登陆,请检查:
a、是否是应用程序导致内存溢出或者泄露导致
b、是否是进程过多或者不断创建,耗尽资源导致
c、是否是数据库程序死锁,连接数过多导致
d、是否是应用程序异常导致
e、是否是流量负载过大导致
f、是否是遭受黑客入侵攻击导致
g、是否是误操作导致
如果无法查看故障现场,则可以查询系统日志查看是否有异常记录。
1. /var/log/messages —— rp 爆发的时候,也许会记录下很多相关信息。按照时间戳查找。
2. 回溯操作 —— 回忆 Kernel Panic 之前所做的所有事,并回滚。(如安装了某个程序,可以查看程序日志文件)
3. Dump 信息 —— 屏幕输出信息是系统最后的“遗言”,请使用手机拍照或者笔纸记录。(tty only)
相关操作:
last |egrep -i "crash|reboot" 查看宕机及重启时间
sar -u -f /var/log/sa/sa21 |more 查看历史cpu情况 (-r 查看内存,-b 查看内存数据是当月多少号的日志,如21表示查看21日的使用情况)
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
sysstat 工具简介: sar命令详解
参考:http://blog.sina.com.cn/s/blog_3d5b39820101n6rk.html
2. Linux经常死机、卡住
linux操作系统服务器在出现死机或卡顿情况,可以参考以下项目进行整体排查:
a、检查服务器进程与服务否占用了太多的内存或是没有释放内存,当服务器内存用完后,然后就会很快宕机;
b、看看/var/spool/cron 里面是不是有cron(计划任务、自动任务)在对应时间段内执行;
c、检查web服务器的参数是否超过了服务器的性能,如允许最大连接数过高等;
d、进程数很高,服务瘫痪,机器假死(例如zombie进程是否过多,一直占用资源);
e、cat /var/log/message查看系统日志是否有异常
f、检查磁盘是否有坏块。(可使用badblocks命令配合参数)
g、内核消耗过大,查看是否有瞬间资源占用过大的进程或服务;
h、ps -ef 查看进程异常否,是否存在攻击
3.可能遇到的问题和解决方法
irq conflict (还好我没碰到),可以尝试从 bios 修改硬件irq,或者升级 bios,都不生效就换电脑或者禁用冲突硬件;
bad balock,尝试修复坏道或者屏蔽坏道分区,建议更换磁盘;
io error,同上,也有可能是没有内建文件系统支持的原因,重新编译内核或者找最新版的内核安装;
mod,删除可能导致错误的内核模块(如 vboxdrv),涉及到的命令有:
lsmod: 列出已载入的模块
modprobe: 载入模块(黑日白月注:在这里和其他命令对应的为 insmod + depmod 比较好,modprobe 更类似于 XXXmod 系列命令的升级整合版本。)
rmmod: 移除内核中模块,效果等同于 modprobe -r
modinfo: 显示模块相关信息
driver,a卡或者n卡驱动,也容易造成问题;
硬件本身的问题导致,建议检测硬件可用性和兼容性(例如 memtest+);
内核 bug,如果您有能力,建议使用 KDB (Kernel debugger) 排错,或者重新编译内核;
不负责任的告诉您,最好的方法是换机器
参考: