linux性能检测入门

xeonds

2026-07-03 23:32:33

进程启动慢调试指南

1. 测量总耗时

time <command>

观察 real 值,确认慢的程度。

2. 追踪系统调用(核心)

strace -f -T -tt -o strace.log <command>

参数说明:-f 跟踪子进程,-T 显示每个调用耗时(微秒),-tt 加时间戳。

3. 快速分析日志

# 找出耗时最长的系统调用
awk '{if ($NF ~ /^[0-9.]+$/) print $NF, $0}' strace.log | sort -nr | head -10

# 查看执行了哪些外部命令(关键)
grep execve strace.log

重点关注:wait4(等待子进程)、openat/stat(文件访问)、connect(网络),以及 execve 调用的外部命令。

4. 单独测试可疑子进程 若发现调用了某个命令(如 nvidia-modprobe),直接运行:

time /usr/bin/可疑命令
echo $?   # 非0表示执行失败,可能导致父进程超时等待或重试

5. 处理“strace 时反而变快”的迷惑现象 可能原因:strace 改变了信号(如 SIGWINCH)和子进程的调度时序,掩盖了真实延迟。可尝试强制 tty 模式或禁用交互式检测(如 btop -t)来验证。

6. 永久修复 根据定位结果,在配置文件中禁用相关功能(如 gpu_monitoring=false)或安装缺失依赖。若暂时无法修复,可用命令行参数或环境变量绕过耗时探测。


一句话总结:strace -f 抓 execve → 看子进程 → 单独测子进程 → 禁用或修复 → 恢复秒开。