环境 :ubuntu
问题症状:服务器内存占用持续增长,性能低下,并发上不去,网络无法ping通,无法登录、无法操作,输入操作无响应。也就是说系统宕机了。
宕机原因 : 先查看线上服务日志,再通过分析Linux系统日志后, 出现内存不足,Linux出于保护机制。
排查思路:分析出内存泄露模块,分析出性能瓶颈,调优JVM
系统日志一般在/var/log/下面
1.查看messages日志,看看有没有CPU温度过高这样的日志。
2.查看cron 日志
3.查看last 命令:查看最后执行的命令
4.查看boot.log是否有异常
5.service --status-all 该命令查看所有服务当前的运行状态。将按照字母的顺序运行所有的 init 脚本
6.chkconfig --list 显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
使用工具:jconsole、jprofiler
系统日志介绍
>/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关的事件记录信息。
>/var/log/cron:记录crond计划任务产生的事件消息。
>/varlog/dmesg:记录Linux系统在引导过程中的各种事件信息。
>/var/log/maillog:记录进入或发出系统的电子邮件活动。
>/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件。
>/var/log/rpmpkgs:记录系统中安装各rpm包列表信息。
>/var/log/secure:记录用户登录认证过程中的事件信息。
>/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
>/var/log/utmp:记录当前登录的每个用户的详细信息。
实例
有两台机器宕机了,分别查看系统日志
1、查看/var/log/dmes日志,查看Linux系统在引导过程中的各种事件信息
#cat /var/log/dmes
#cat /var/log/boot.log
出现报错
intel_rapl: no valid rapl domains found in package 0
init: failsafe main process (538) killed by TERM signal
查看日志管理工具
journalctl -xb
报错信息 :
3月 10 19:16:39 S251045.domain kernel: No AGP bridge found
3月 10 19:16:39 S251045.domain kernel: Calgary: detecting Calgary via BIOS EBDA area
3月 10 19:16:39 S251045.domain kernel: Calgary: Unable to locate Rio Grande table in EBDA - bailing!
3月 10 19:16:41 S251045.domain kernel: intel_rapl: no valid rapl domains found in package 0
3月 10 19:16:42 S251045.domain kernel: intel_rapl: no valid rapl domains found in package 0
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
3月 10 19:16:44 S251045.domain ntpdate[532]: name server cannot be used: Temporary failure in name resolution (-3)
3月 10 11:16:57 S251045.domain kernel: random: nonblocking pool is initialized
3月 10 11:16:58 S251045.domain kernel: perf samples too long (14968 > 10000), lowering kernel.perf_event_max_sample_rate to 12500
解决办法:
报错原因 :
解决办法 :
1、intel_rapl:no valid rapl domains found in package 0错误解决办法
修改 /etc/modprobe.d/blacklist.conf 内容,加入 blacklist intel_rapl
linux(CentOS)服务宕机原因定位
列表查看"/var/log"目录中的各种日志文件及子目录介绍
>/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关的事件记录信息。
>/var/log/cron:记录crond计划任务产生的事件消息。
>/varlog/dmesg:记录Linux系统在引导过程中的各种事件信息。
>/var/log/maillog:记录进入或发出系统的电子邮件活动。
>/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件。
>/var/log/rpmpkgs:记录系统中安装各rpm包列表信息。
>/var/log/secure:记录用户登录认证过程中的事件信息。
>/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
>/var/log/utmp:记录当前登录的每个用户的详细信息。
查看日志配置文件"/etc/syslog.conf’中的内容
1.使用last -F |grep carsh
查看宕机记录
2.访问/var/logmessage日期查看宕机前的系统日志,查看是否有告警信息,根据告警信息具体检查
查看dmesg查看内核日志
查看/var/log/secure查看安全日志判断是否有人恶意攻击服务器
3.2中未查到错误信息
使用sar -r -f /var/log/sa/sa日期|more sar -u -f /var/log/sa/sa日期|more查看宕机当时的cpu内存情况
top查看负荷,free -m 查看内存情况
4. 磁盘IO性能
命令 iostat 可得到相应的数值
好:iowait%<20%
坏:iowait% = 35%
糟糕:iowait%>=50%
uptime查看服务器运行重启情况
5.查看是否有硬件告警
服务器排查以及优化
清理内存
#1.【推荐】释放网页缓存(To free pagecache),
sync
echo 1 > /proc/sys/vm/drop_caches
#2.释放目录项和索引(To free dentries and inodes)
sync
echo 2 > /proc/sys/vm/drop_caches
#3.释放网页缓存,目录项和索引(To free pagecache, dentries and inodes):
sync
echo 3 > /proc/sys/vm/drop_caches
选择适合自己的方式清理,再执行查看内存情况,就可以看到内存已经有很大空闲空间;
linux下查看cpu温度
检查是否安装:rpm -q lm_sensors
如果没有:yum install -y lm_sensors安装
sh -c "yes|sensors-detect"检测传感器
sensors-detect
chkconfig --list | grep ‘lm_sensors’
sensors查看cpu温度
扩展
错误一
end_request:I/O error,dev fd0,sector 0
- 出现这个错误的原因如果在一般的主机和虚拟机的关系中,表示系统加载“软驱”(fd0表示软驱,在etc目录中)出错,那么可以将fd0目录删除,或者直接禁用,即可解决。
- 但如果这种问题出现在了以集群为平台的虚拟机中,由于在创建虚拟机的时候并没有给虚拟机分配相关的光驱或者软驱,那么出现这种问题的原因就是由于不正常关机导致的系统目录加载出错,网上其他的解决方案也称之为“硬盘挂载”出错。相应的解决方案就是恢复系统默认设置,直接键入:systemctl default,然后回车。等待系统自行重启完毕之自动进入default mode后即可。
- 注:由于处于emergency mode时,默认的设置还是最后一次“正确”配置,所以直接使用systemctl reboot是无法解决问题的。
错误二
Error getting authority: Error initializing authority: Could not connect: No such file or directory
- 出现这个错误的原因也是由于磁盘挂在错误导致的,如果在fstab中修改无效的话,同样使用systemctl default恢复默认设置即可。(注:在键入这个命令之后可能会报错,但是不用关心这个错误,紧接着用命令重启机器即可解决)
参考链接 :
intel_rapl:no valid rapl domains found in package 0错误解决办法 : https://blog.csdn.net/chenhuihuanhuan/article/details/51521033
linux下查看cpu温度 : https://blog.csdn.net/qq_33229923/article/details/90293213?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
linux故障分析 : https://blog.csdn.net/xi_weina/article/details/7068475?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
linux服务宕机原因定位 : https://blog.csdn.net/qq_33229923/article/details/90294159
【Linux】非正常关机启动报错-解决方案 : https://blog.csdn.net/SugaryoTT/article/details/76713983?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
Centos下查看cpu、磁盘、内存使用情况以及如何清理内存 : https://blog.csdn.net/mynamepg/article/details/79226402
服务器宕机排查记录 : https://blog.csdn.net/weixin_30916125/article/details/95561458?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task