“生产运维常见问题处理”
生产运维常见问题处理
一、主机内存异常
问题确认
1、确认内存使用率异常高的确切时间点和持续时间
2、确认最近一次变更是否与异常的开始时间相近,判断异常是否由变更导致
初步诊断
1、使用top、htop等命令查看当前系统中哪些进程的内存使用量最高
2、使用free命令查看总的可用内存、已使用的内存和缓冲区/缓存
3、查看系统日志,如/var/log/syslog、/var/log/messages等,以查找与内存使用异常相关的错误或警告信息
问题处置
1、查看系统负载,根据 %MEM 列,确定占用较多资源的进程:
1
top
2、异常进程为磐基外进程服务,评估后进行kill处理
1
kill -9 pid
3、异常进程为磐基业务服务进程,业务评估资源使用情况进行处理
1
k get po -A -owide | grep "Node_IP"
二:网络流量异常
问题确认
1、确认主机网络使用率异常的确切时间点和持续时间
2、确认最近一次变更是否与异常的开始时间相近,判断异常是否由变更导致
初步诊断
1、使用ping、ifconfig、sar、ethtool、top等命令查看当前系统中是否有网络负载
2、使用sar、ifconfig命令查看网卡的试试流量信息,是否有丢包信息等
3、使用dmesg查看是否有硬件故障
4、使用netstat 查看那些交易占用连接比较多
5、查看系统日志,如/var/log/messages等,以查找与网络(网卡)使用异常相关的错误或警告信息
问题处置
1、查看网卡吞吐量,找到流量异常网卡:
1
2
3
sar -n DEV 1:(查看网卡吞吐量)
sar -n TCP,ETCP 1:(查看TCP的使用率和错误率)
2、ping主机看有没丢包
1
ping x.x.x.x
3、查看网卡,是否有一样信息
ifconfig bondx(网卡名) :查看dropped列,看是否有数据被持续丢弃
4、查看是否有大量网络连接
1
netstat -anp|wc -l #查看当前连接总数,并根据需要查看从某个业务ip和端口过来的连接比较多等
5、对于连接量比较大的交易,需要业务确认,是否由租户重启(调整)服务,是否可以协助kill 删掉服务等
6、查看是否有硬件/网络相关报错信息
1
dmesg -T #查看当前是否有报错
7、异常进程为外进程服务,评估后进行kill处理
1
kill -9 pid
三:主机inode节点数满
问题确认
1、确认目前主机文件和目录是否无法创建
2、确认最近是否有涉及inode相关参数修改,判断异常是否由变更所导致
初步诊断
1、查看磁盘用量和inode数使用情况
2、创建文件和目录,查看执行情况和报错提示
问题处置
1、 查看主机inode使用情况:
1
2
3
4
5
df –i
#输出结果中查看Inode 已用、可用、已用、百分比%情况:
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
2、 查看清理系统中不再需要的临时文件、日志文件或无用文件,可以释放inode数,操作前务必确认好,谨慎操作:
遍历查找目录和文件数
1
for i in /*; do echo $i; find $i | wc -l; done
根据实际情况查找大文件,清理系统中不再需要的文件或僵尸进程
1
find /xxx -type f -size +xxM -delete
3、查看当前lvm名称和空间,使用lvm命令扩容inode节点数
一般默认固定大小对应一个inode,扩容LV卷可以新增inode数
执行vgs 、lvs查看当前卷信息,如需扩容如下操作:
1
2
3
4
5
lvextend -L +空闲大小 /dev/mapper/vg--xxx-lv—xxx
ext4 格式: resize2fs /dev/mapper/vg--xxx-lv—xxx
Xfs格式 : xfs_growfs /dev/mapper/vg--xxx-lv—xxx
四:主机磁盘io异常
问题确认:
1、 确认当前主机负载是否异常高
2、 确认是否有进程异常占用高磁盘IO
3、 确认最近是否有相关改动、判断异常是否由变更所导致
初步诊断:
1、 查看磁盘IO利用率和iowait使用情况
2、 查看当前进程的 IO 操作,重启或停止进程
3、 查看系统启动和挂载情况是否有IO错误信息
问题处置:
1、 根据监控告警,查看主机%util和read\write速率、磁盘使用情况,
1
iostat –dx 1 或df –h、top