Debian 进程启动慢,原因可能很多,下面按常见原因 + 对应解决办法给你一个排查思路,你可以逐条对照。
不要一上来就优化,先定位:
time ./你的程序
或者看系统启动相关:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain
如果是系统启动慢,重点看 systemd-analyze blame 里耗时最多的服务。
尤其是:
排查:
iostat -x 1
或
iotop
解决:
systemd-analyze blame
如果某些服务明显慢:
systemctl disable 服务名
Type=notify / Type=simple很多程序启动时会做域名解析,DNS 卡会非常慢。
检查:
cat /etc/resolv.conf
解决:
Java、TLS、数据库常卡在:
waiting for entropy
检查:
cat /proc/sys/kernel/random/entropy_avail
解决:
havegedapt install haveged
systemctl enable haveged
-Djava.security.egd=file:/dev/./urandom
解决:
DEBUG 日志狂打,磁盘直接爆慢。
解决:
内存一满就 swap:
cat /proc/sys/vm/swappiness
可调:
sysctl vm.swappiness=10
大量连接或文件时:
ulimit -n
不够就改 /etc/security/limits.conf
你可以对照:
如果你愿意,可以告诉我:
我可以直接给你更精准的优化方案。