VPS加载本地文件系统图片速度远慢于本地环境的问题求助
VPS加载本地文件系统图片速度远慢于本地环境的问题求助
大家好,我最近遇到一个头疼的问题,想请各位大佬帮忙分析下。我的Spring Boot项目里有两个核心接口:
/接口会返回11个DTO对象,每个DTO都包含一个imagePath字段,本地开发环境下这个字段值是http://localhost:8082/api/get_image/imagename.png,部署到VPS上后就变成http://123.456.78.901/api/get_image/imagename.png/get_image/{name}接口负责根据传入的文件名返回对应图片,代码实现如下:
@GetMapping(value = "get_image/{name}", produces = MediaType.IMAGE_JPEG_VALUE) public @ResponseBody byte[] getImage(@PathVariable(name = "name") String name) { ... byte[] image = this.fileService.getFile(fullPath); return image; }
另外,我用下面这个方法从文件系统加载图片:
public byte[] getFile(String path) { try { File file = new File(path); InputStream in = new FileInputStream(file); return IOUtils.toByteArray(in); } catch (IOException e) { return null; } }
现在的问题是:在本地PC上加载页面图片时速度很流畅,但部署到VPS上之后,加载这些图片的速度变得特别慢。想问问大家,可能是什么原因导致的?有没有可行的解决办法?
我自己初步想到的几个排查方向(也欢迎补充其他思路)
- 磁盘性能差异:本地用的是SSD,VPS可能是机械盘或者性能一般的共享存储?
- 网络带宽限制:VPS的上传带宽不够,同时加载11张图片时带宽占满?
- 文件读取效率:当前的IO方式是不是不够高效?
各位大佬有没有具体的优化建议或者排查方法?
备注:内容来源于stack exchange,提问作者parsecer
相关产品推荐
相关产品推荐

