Spring Boot数据处理应用因VPS提供商CPU限制导致服务器锁定的解决方案求助
Spring Boot数据处理应用因VPS提供商CPU限制导致服务器锁定的解决方案求助
我开发了一个基于Java Spring Boot + PostgreSQL的应用,最近遇到了个头疼的问题——因为要处理的数据量很大,处理过程不仅耗时,还会把CPU拉满(经常到100%)。而我的VPS提供商有个机制,只要CPU长时间超标,就会自动锁定服务器,这给我带来了很大困扰。
我已经尝试过几种方案,但都不太理想:
- 用
nice命令以最低优先级启动Java应用,但这好像根本没法阻止CPU“超标”,服务器还是会被锁定; - 给PostgreSQL进程或者Java进程用
cpulimit限制CPU,但这么做又会搞崩应用——要么Java启动不起来,要么PostgreSQL没法完成数据处理任务。
我已经对应用做过一轮优化了,但还是没解决问题。现在我有点迷茫:到底要不要继续深挖应用优化的空间?还有没有其他办法,既能避免CPU超标触发锁定,又不影响数据处理的正常进行?
补充一下服务器配置:看起来是1核CPU + 2GB内存。
备注:内容来源于stack exchange,提问作者BullyWiiPlaza




