0%

nginx执行nginx -t返回很慢

问题现象

nginx服务器,执行nginx -t,返回时间很久

解决

通过用ps- ef获取nginx进程pid

1
ps -ef |grep nginx

查看这个进程在哪一步耗时

1
strace -o output.txt -T -tt -e trace=all -p 1679 //strace命令查看每一步执行的时间开销

发现大量fd=5的文件描述符出现了Timeout。

进一步查看fd=5 且进程号为1679的操作

1
lsof -d 5 |grep 1679

进一步排查发现,该步操作使用UDP协议,请求的是系统的domain服务(即DNS服务)

仔细查看系统/etc/resolv.conf 配置,发现dns解析有问题,需修改为正常DNS服务