Linux 运维日常排错
硬盘与IO
df -Th
#查看挂载和文件系统类型。检查是否有空间用满,是否有业务数据未使用独立分区?
iostat -x 1
1. 检查iowait是否持续在15%以上,说明硬盘负载高。
2. 检查%util是否有某块硬盘保持在100不变的,说明该硬盘有故障。
3. 检查%util是否有个别硬盘在90以上的现象。
内存检查
free -m
1. 注意要看非buffers/cache的free状况 ( 另外要注意进程在使用共享内存时,在此反映不出来,需要用top命令进一步验证 )
2. 检查swap是否有占用。
进入top后按shift+m,按内存占用排序
CPU检查
进入top后按1,检查各个核的消耗,是否有idle小于5%的,如果是,看是具体哪项占的。一般可能有3种情况:
1. %us 应用程序本身逻辑对CPU的消耗。
2. %ni 低优先级的进程占用的CPU,无影响。
3. %ri 软中断占用高可能是网卡队列不够,或LVS、iptables、splise等功能消耗的,可以辅助用ceat /proc/interrupts排查原因。
看CPU占用高的进程,检查Tasks总数, 系统默认是200左右,如果超过300要继续ps -ef检查是什么进程过多?原则上进程不得超过1000, 否则OS会为进程切换付出很大CPU开销,影响系统性能。
网络
ifconfig
watch ifconfig bond0
#查看网络带宽使用情况
sar -n DEV 2 10
ss -s 查看当前网络连接数
ss -nl 查当前监听端口
ss -na 查所有连接
好记性不如烂笔头