开发者社区> 问答> 正文

服务器IO问题

  linux服务器内存使用完后,内核会启动进程把内存里面不常用的数据交换到swap里面去,此时会产生很高的IO,甚至把IO撑满,造成无法远程ssh。

  那么,有没有办法在内存交换的时候是IO使用得到一些限制或者控制呢?
  

展开
收起
大新simon 2017-01-06 18:04:51 2257 0
3 条回答
写回答
取消 提交回答
  • 出现swap交换说明你的机器物理内存不足。按top再按shift+m,对RES排名前面,值大的进程进行排查,看看他是否真的有必要使用这么多内存,削减不必要的内存开支:

    case by case的分析,如果是java类程序,看看是否一定必须要开启大堆,主要看参数xms. 如果流量不是那么大,可以考虑把这个值调小,这样会使得java进程在堆内存小的时候,适当归还一些内存给操作系统;

    2019-07-17 20:40:54
    赞同 展开评论 打赏
  • 可以考虑把swap关掉呀,并且降低dirty_ratio

    2019-07-17 20:40:54
    赞同 展开评论 打赏
  • 限制应用对内存的过度使用啊。应用程序启动时把需要大量使用的内存申请出来,自己管理好。

    2019-07-17 20:40:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大规模云服务器高效使用及管理最佳实践 立即下载
如何运维千台以上游戏云服务器 立即下载
多IO线程优化版 立即下载