问题说明:
1、研发同事反馈应用程序上传一张图片耗时6分钟,让我们排查一下是什么问题?
1[INFO] 2022-03-01 17:16:38.295 [vu73wwv64ba4ncfzaiiou2qsem] [DubboServerHandler-172.18.32.254:20881-thread-2400] [FtpFile.java:854:uploadFileToPath()] uploadFileToPath path://c/product/590389/display/,fileName:display.jpg, cost:383667 ms
显示上传一张图片花了383667ms,没道理啊,这事自建的vsftp服务器,也没往oss桶里放东西的。
问题排查:
1、登录到30.18上面查看vsftpd日志信息,过滤display.jpg的信息,发现上传信息是正常的。
2、查看prometheus监控各项指标都很正常。唯有那个点的io比平时高一点,什么原因导致未知.
3、查看vsftpd的全部日志信息,发现ftp每到一个目录就执行一个list操作,由于product目录下面文件很多,所以过了6分钟才相应结果,这就是导致ftp慢的原因。 [图片]
4、找研发部门验证,终于发现ftp公共组件,代码里确实有这个list操作。
总结:开发病得不清,判断目录是否存在居然每次都刷一下所有文件,太弱智了。