我没有找到解决方案,所以我不确定,有没有.
我的问题是:我想运行一个基于java的服务器程序,我希望它完全接受交换.它的-xms现在是384,但这还不够.
有什么解决方案吗?
p.s.:swappiness是60.我不想在RAM中看到这个过程:-)
解决方法:
没有进程可以在“完全”交换中执行.必须将代码数据加载到RAM中,以便cpu读/写/执行它.你可以把东西暂时推出去交换,但是如果你的驻留设置太小,你的系统会不断交换. (即使使用SSD,从磁盘加载比从RAM加载要慢几千倍.)
这种不断的交换将:
1)减慢整个系统的速度,因为磁盘的一些I / O带宽会被不断使用
2)缩短SSD的使用寿命,因为SSD在出现故障之前具有有限的写周期数.
您最好的选择就是创建一个大的交换区域,并正常运行您的程序.操作系统会将不经常使用的位移出磁盘.如果你无法在系统的其余部分获得良好的性能,那么你需要更多的RAM.您可以尝试使用ulimit和/或cgroups来限制进程使用的RAM量,但这不能“修复”您的问题.
或者,您可以使用更有效的语言重新编写服务器. (这是一个常见的权衡:程序员可能花费数月优化运行时cpu /内存占用,或者业务可能会花更多钱在硬件上.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。