我在具有16 GB RAM的ubuntu系统上运行一个jar文件。我在开发应用程序时使用了Spring引导框架,JPA。我观察到应用程序启动后内存和CPU使用率不断增加。一致性可能导致CPU使用率和内存增加的原因是什么?
什么是操作通过应用程序 - >更新文本文件
File file = new File(file path);
OutputStream os = new FileOutputStream(file.getAbsoluteFile());
和阅读操作
FileInputStream inputStream = new FileInputStream(file);
InputStreamResource resource = new InputStreamResource(inputStream);
以一分钟的频率更新文件。
我尝试运行jar以及在tomcat服务器上部署war文件,在这两种情况下它的行为相同。
主要内容是创建原始缓冲区文本文件。我已经添加了
@Scheduled(fixedDelay = 60000)
@RequestMapping(value = "/test")
public String generateProtoBuf(){
...
}
所以每分钟这个方法都会触发并更新文本文件。
我暴露了另一个API。
@RequestMapping(path = "/getProtoBuf", method = RequestMethod.GET)
public ResponseEntity<Resource> getProtoBuf() throws IOException {
...
}
这个API会在每分钟调用两次。文件大小将小于1 MB。
在最初几个小时,应用程序正常运行,但在几小时后,当CPU使用率增加15%时,它将急剧增加并触及100%。