不断回收的Linux和Swap空间中的交换大小不断增加?
我有一个8GB的RAM
linux盒子,运行4个tomcat服务器.其中一个设置为3000MB内存(jvm -Xms和-Xmx设置),其他设置为1500MB.交换分区也设置为8Gigs.当我启动这些服务器时,交换文件的使用率很低.但是在一段时间内以及在某个/所有服务器处于峰值活动的某些时间内,交换使用率开始增加.这是典型的sar -r输出.
它显示当前使用的14.2%掉期.有趣的是这个%永远不会减少.它继续增加,达到30-40%.我们每周重启服务器. 我认为%swpused在峰值活动期间增加,在低活动期间减少.或者至少保持不变.这看起来像操作系统从未回收交换空间. 免费输出: 所以至少有2克免费拉姆.所以问题是为什么交换空间继续增加而不被操作系统收回?或者如何调试这个以弄清楚什么是hapenning .. 解决方法
如果信息被换出到光盘然后再读回内存,它通常会在交换区域中分配,直到交换空间不足为止.
这意味着如果相同的信息需要稍后再次换出并且没有改变,操作系统可以从已分配的RAM中删除页面,而无需向磁盘节省时间. 分配给已经读回内存的东西的交换也将被释放 >当根本不再需要相关页面时(即由应用程序释放) 在/ proc / meminfo中查找名为“SwapCached”的行.此条目计算在RAM和交换分区中找到的页面.例如,随机选择一个小VM,我的一个VM的/ proc / meminfo虚拟文件显示: SwapTotal: 698816 kB SwapFree: 624520 kB SwapCached: 17232 kB 表示分配了74268K的交换空间,但是这些页面的17232K当前也被映射到RAM中(如果其他东西需要空间,可以立即从交换中解除分配). 毫无疑问,坐在那里的页面很久以前就被换掉了,从那时起就再也没有用过了.内核不会因为有一些空闲的RAM来重新加载来自swap的页面,因为空闲的RAM可能更好地用于缓存或缓冲区 – 写入交换的页面通常只在下次需要时重新读取. 如果你想清除swap中的内容,只要你有足够的空闲和/或可用空间(即免费缓存缓冲区(减去cb计数中那些不可用的权利RightThisInstant)),只需将其关闭然后再打开再次使用swapoff -a&&交换-a. 当然,你也可能在某处发生内存泄漏,但这并不是你所看到的行为的唯一解释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |