Linux系统的虚拟内存原来这么坑!
导致这种题目的缘故起因是 Java 行使 Glibc 的 Arena 内存池分派了大量的假造内存并没有行使。另外,Java 读取的文件也会被映射为假造内存,在假造机默认设置下 Java 每个线程栈会占用 1M 的假造内存。详细可以查察 为什么linux下多线程措施云云耗损假造内存。 而真拭魅占用的物理内存要看 RES (resident) 列,这一列的值才是真正被映射到物理内存的巨细。 常用打点呼吁 我们也可以本身来打点 Linux 的假造内存。 查察体系内存状态 查察体系内存环境的方法有许多,free、 vmstat等呼吁都可输出当前体系的内存状态,必要留意的是可用内存并不可是 free 这一列,因为操纵体系的 lazy 特征,大量的 buffer/cache 在历程不再行使后,不会被当即整理,假如之前行使它们的历程再次运行还可以继承行使,它们在须要时也是可以被操作的。 另外,通过 cat /proc/meminfo 可以查察体系内存被行使的具体环境,包罗脏页状态等。详情可拜见:/PROC/MEMINFO之谜。 pmap 假如想单独查察某一历程的假造内存漫衍环境,可以行使 pmap pid 呼吁,它会把假造内存各段的占用环境从低地点到高地点都列出来。 可以添加 -XX 参数来输出更具体的信息。 修改内存设置 我们也可以修改 Linux 的体系设置,行使 sysctl vm [-options] CONFIG 或 直接读写 /proc/sys/vm/ 目次下的文件来查察和修改设置。 SWAP 操纵 假造内存的 SWAP 特征并不老是有益,放任历程不断地将数据在内存与磁盘之间大量互换会极大地占用 CPU,低落体系运行服从,以是偶然辰我们并不但愿行使 swap。 我们可以修改 vm.swappiness=0 来配置内存只管少行使 swap,可能爽性行使 swapoff 呼吁禁用掉 SWAP。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |