插件窝 干货文章 Linux 问题故障定位的技巧大全

Linux 问题故障定位的技巧大全

bash 系统 分析 内核 756    来源:    2025-05-14

Linux 问题故障定位技巧大全

系统监控与性能分析

1. 系统资源监控

  • top/htop:实时监控CPU、内存使用情况

    top
    htop
    
  • vmstat:虚拟内存统计

    vmstat 1 5  # 每秒采样一次,共5次
    
  • iostat:磁盘I/O统计

    iostat -x 1
    
  • dstat:全能系统资源统计工具

    dstat -cdngy
    

2. 内存分析

  • free:查看内存使用情况

    free -h
    
  • pmap:查看进程内存映射

    pmap -x <PID>
    
  • smem:更详细的内存报告

    smem -s swap -r
    

3. CPU分析

  • mpstat:多核CPU统计

    mpstat -P ALL 1
    
  • pidstat:进程级CPU使用统计

    pidstat -u 1 5
    
  • perf:性能分析工具

    perf top
    perf stat -a sleep 5
    

日志分析

1. 系统日志

  • journalctl:systemd日志查看

    journalctl -xe
    journalctl -u nginx --since "2023-01-01" --until "2023-01-02"
    
  • /var/log/messages:通用系统消息

  • /var/log/syslog:系统日志
  • dmesg:内核日志 bash dmesg | grep -i error

2. 日志分析工具

  • grep:文本搜索

    grep -i error /var/log/syslog
    
  • awk:文本处理

    awk '/error/{print $0}' /var/log/syslog
    
  • logrotate:日志轮转配置

    cat /etc/logrotate.conf
    

网络问题排查

1. 基本网络工具

  • ping:测试连通性

    ping -c 4 example.com
    
  • traceroute:路由追踪

    traceroute example.com
    
  • mtr:增强版traceroute

    mtr example.com
    

2. 网络连接分析

  • netstat/ss:查看网络连接

    netstat -tulnp
    ss -tulnp
    
  • lsof:查看打开的文件和网络连接

    lsof -i :80
    

3. 网络抓包

  • tcpdump:网络抓包

    tcpdump -i eth0 port 80 -w capture.pcap
    
  • wireshark/tshark:图形化/命令行抓包分析

    tshark -r capture.pcap
    

磁盘与文件系统

1. 磁盘空间分析

  • df:磁盘空间使用情况

    df -h
    
  • du:目录空间使用情况

    du -sh /*
    
  • ncdu:交互式磁盘使用分析

    ncdu /
    

2. 文件系统检查

  • fsck:文件系统检查修复

    fsck /dev/sda1
    
  • badblocks:坏块检测

    badblocks -v /dev/sda
    

3. I/O性能分析

  • iotop:磁盘I/O监控

    iotop -o
    
  • blktrace:块设备I/O跟踪

    blktrace -d /dev/sda -o - | blkparse -i -
    

进程与系统调用

1. 进程管理

  • ps:进程查看

    ps auxf
    
  • strace:系统调用跟踪

    strace -p <PID>
    
  • ltrace:库调用跟踪

    ltrace -p <PID>
    

2. 进程调试

  • gdb:GNU调试器

    gdb -p <PID>
    
  • pstack:进程堆栈查看

    pstack <PID>
    

内核问题排查

1. 内核日志

  • dmesg:内核消息

    dmesg | tail -20
    
  • /proc文件系统:内核信息

    cat /proc/meminfo
    cat /proc/cpuinfo
    

2. 内核参数

  • sysctl:内核参数查看与修改 bash sysctl -a sysctl -w vm.swappiness=10

安全相关排查

1. 用户与权限

  • last:登录历史

    last
    
  • who:当前登录用户

    who
    
  • sudo:权限提升

    sudo -l
    

2. 安全审计

  • auditd:审计守护进程

    ausearch -m USER_LOGIN
    
  • chkrootkit/rkhunter:rootkit检测

    chkrootkit
    rkhunter --check
    

高级技巧

1. 系统快照

  • sar:系统活动报告

    sar -u 1 5
    
  • atop:高级系统监控

    atop
    

2. 性能瓶颈定位

  • perf:性能分析

    perf record -g -p <PID>
    perf report
    
  • bpftrace:eBPF跟踪

    bpftrace -e 'tracepoint:syscalls:sys_enter_* { @[probe] = count(); }'
    

3. 自动化诊断

  • sosreport:收集系统信息

    sosreport
    
  • mcelog:机器检查异常日志

    mcelog --client
    

故障定位流程

  1. 明确问题现象:收集错误信息、发生时间、频率等
  2. 检查系统日志:/var/log下的相关日志
  3. 监控系统资源:使用top/htop等工具查看资源使用情况
  4. 缩小范围:确定是CPU、内存、磁盘I/O还是网络问题
  5. 深入分析:使用特定工具针对特定子系统分析
  6. 验证假设:通过修改配置或环境验证问题原因
  7. 实施修复:应用解决方案并监控效果

通过系统性地应用这些工具和技巧,可以高效地定位和解决Linux系统中的各类问题。