Linux的swappiness的配置

如果你有一个非常重要的java程序,而且是线上服务,对delay要求很高。但是 偶 尔发现系统在负载很轻变化到负载较重的时候响应时间有点慢, 或者某些 冷 门 query比较慢。你用工具发现os有不少page fault,但是你知道机器有足 够的 内存 分配给JVM,那么可能需要调整一下swappiness了。
swappiness

http://en.wikipedia.org/wiki/Swappiness

操作系统会根据一定的策略自动换出不常使用的内存,这样的优点是有足够的空闲内存给新的程序使用。但有的时候我们有一些关键程序,需要很快的响应时间。但是它可能有些内存不是经常使用,而是偶尔用到,万一用到的时候不在内存,那么就会产生page fault。

我们可以根据上面的wiki调整这个参数

JVM记得设置 -Xmx == -Xms

调整某个进程的swappiness

但是上面的方法有个缺点,它的修改是全局的。我们其实是想某些“关键”程序的内存不被换出,那些不那么重要的程序最好还是换出去。那上面的方法就不行了。

http://unix.stackexchange.com/questions/10214/per-process-swapiness-for-linux

更好的方法

前面的设置非常麻烦,而且需要修改Linux的配置。

mlockall

http://linux.die.net/man/2/mlockall

这正是我们想要的,但是我们需要在Java里实现

JNA

https://github.com/twall/jna

Apache Cassandra就使用了这个方法来保证JVM的内存不被换出


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值