内存分配管理

浅谈linux性能调优之十一:内存分配管理

丶灬走出姿态 提交于 2020-04-11 16:38:21
linux下内存分配的管理主要通过内核参数来控制: 1.与容量相关的内存可调参数 以下参数位于 proc 文件系统的 /proc/sys/vm/ 目录中。 overcommit_memory :规定决定是否接受超大内存请求的条件。这个参数有三个可能的值: * 0 — 默认设置。内核执行启发式内存过量使用处理,方法是估算可用内存量,并拒绝明显无效的请求。遗憾的是因为内存是使用启发式而非准确算法计算进行部署,这个设置有时可能会造成系统中的可用内存超载。不让过度使用,直接报错 * 1 — 内核执行无内存过量使用处理。使用这个设置会增大内存超载的可能性,但也可以增强大量使用内存任务的性能。应用程序在需要时分配,允许过度使用 * 2 — 内存拒绝等于或者大于总可用 swap 大小以及 overcommit_ratio 指定的物理 RAM 比例的内存请求。如果您希望减小内存过度使用的风险,这个设置就是最好的。 将swap直接使用,使用的内存 = swap + ram * 50% 注意:只为 swap 区域大于其物理内存的系统推荐这个设置 overcommit_ratio 将 overcommit_memory 设定为 2 时,指定所考虑的物理 RAM 比例。默认为 50。 测试程序: #######################################################