Linux 进程启动/加载慢是一个常见但成因复杂的问题,通常可以从内核、系统资源、文件系统、程序本身、安全机制几个层面来排查。下面按「常见原因 → 现象 → 排查方法」系统说明。
top
htop
vmstat 1
关注:
%us %sy 是否很高cs(上下文切换)是否异常free -h
swapon -s
cat /proc/pressure/memory
如果 si/so 不为 0,说明在用 swap。
iostat -x 1
iotop
execve 后卡很久ldd 输出很多库LD_LIBRARY_PATH 过大ldd /path/to/bin
echo $LD_LIBRARY_PATH
优化:
LD_LIBRARY_PATHldconfigld.so.cacheldconfig
mount | grep nfs
df -hT
/usr/lib 目录巨大getenforce
dmesg | grep avc
execve 被大量审计auditctl -l
systemctl status auditd
strace -f -e trace=execve,open,read,connect ./app
main 之前就慢systemctl show <service> | grep -i cpu
time ./your_program
strace -c ./your_program
perf trace ./your_program
Linux 进程加载慢,80% 来自:IO、内存、动态链接、安全审计;20% 来自程序自身初始化。
如果你能提供:
我可以给你更精准的排查步骤。