Linux 进程“启动/加载慢”是一个常见但原因很多的问题,可以从内核、库、磁盘、CPU、安全机制、应用本身几个层面来分析。下面按常见原因 → 表现 → 排查方法来说明。
iowait 高)表现
top
# %wa 很高
iostat -x 1
解决
preload / ld.so.cacheLinux 程序默认使用 动态链接:
.soldconfig 未更新或库路径混乱检查
ldd 进程
time 进程
优化
sudo ldconfig
LD_LIBRARY_PATHcat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
改为:
performance
free -h
vmstat 1
解决
getenforce
auditdfapolicydsystemctl status fapolicyd
一般影响不大,但容器 + 高并发可能明显。
docker run --rm alpine time wget
fork() 在内存大时慢posix_spawn典型现象
strace -f -e trace=execve,open,connect ./程序
ENV 几 MBenv | wc -c
time ./程序
strace -c ./程序
top
# 看 wa / sy / us
iostat -x 1
ldd 程序
Linux 进程加载慢,90% 是磁盘 IO + 动态库 + 启动逻辑重;剩下 10% 是 CPU、安全机制、容器和内存。
如果你愿意,可以告诉我:
我可以帮你精准定位是哪一类原因。