linux 的overcommit_memory、overcommit_ratio、swappiness 的说明详解程序员
0 默认设置。表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
遗憾的是因为内存是使用启发式overcommitting handle(会尽量减少swap的使用)而非准确算法计算进行部署,这个设置有时可能会造成系统中的可用内存超载。
1 允许超过CommitLimit,即允许分配所有的物理内存,而不管当前的内存状态如何。
使用这个设置会增大内存超载的可能性,但也可以增强大量使用内存任务的性能。
2 拒绝超过CommitLimit的分配,即拒绝等于或者大于总可用 swap 大小以及 overcommit_ratio 指定的物理 RAM 比例的内存请求。如果您希望减小内存过度使用的风险,这个设置就是最好的。
公式:CommitLimit = (Physical RAM * vm.overcommit_ratio / 100) + Swap
vm.overcommit_ratiovm.overcommit_ratio = 90
默认为50,为物理内存分配时的比例。
只有当vm.overcommit_memory = 2的时候才会生效
查看系统overcommit信息
# cat /proc/meminfo |grep -i commit CommitLimit: 90971304 kB Committed_AS: 64872556 kB
CommitLimit:最大能分配的内存(个人理解仅仅在vm.overcommit_memory=2时候生效),具体的值是
SWAP内存大小 + 物理内存 * overcommit_ratio / 100
Committed_AS:当前已经分配的内存大小
临时设置
#sysctl vm.swappiness=10vm.swappiness
vm.swappiness = 1
默认值为60,代表 当剩余物理内存低于40%(40=100-60)时,开始使用交换空间
vm.swappiness = 0
最大限度使用物理内存,然后才是 swap空间,即在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
在内存紧张时优先减少RAM里文件系统缓存的大小,而非使用swap空间,这是一种提高数据库性能的推荐做法。
vm.swappiness = 1
内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。
vm.swappiness = 10
当系统存在足够内存时,推荐设置为该值以提高性能。
vm.swappiness = 60
默认值
vm.swappiness = 100
积极的使用交换空间。
对于内核版本为3.5及以上,Red Hat内核版本2.6.32-303及以上,多数情况下,设置为1可能比较好,0则适用于理想的情况下(it is likely better to use 1 for cases where 0 used to be optimal)
临时设置
# echo 10 /proc/sys/vm/swappiness
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/1782.html
服务器部署程序员系统优化网站设置运维相关文章
- linux kill -9 的记录,批量杀进程详解程序员
- linux bash command not found,针对腾讯云lighthouse,linux下如何切换到root权限(附命令)详解程序员
- linux find命令&mtime参数用法详解程序员
- Linux 常用命令总结详解程序员
- linux中grep用法(“或”、“与”)详解程序员
- Linux命令之ln详解程序员
- Linux命令之killall详解程序员
- Linux du命令详解程序员
- Linux中使用sed命令替换字符串小结详解程序员
- Linux下实现屏幕截图的最佳方法(linux屏幕截图)
- Linux 设备树:深度剖析(linux设备树详解)
- Linux 文件权限管理:添强安全性(linux文件添加权限)
- 体验Linux系统下的咪咕播放器(linux咪咕播放器)
- Linux源码精要:PDF详解(linux源码pdf)
- Linux系统下关闭防火墙的命令详解(linux关闭防火墙命令)
- :linux cp命令详解Linux命令cp的使用方法与技巧(linuxcp链接)
- Linux桌面版:谁主沉浮?(linux桌面版哪个好)
- 深入Linux嵌入式开发详解PPT(linux嵌入式ppt)
- Linux下DNS设置快速指南(linux的dns设置)
- 掌握Linux下如何修改时间(linux修改时间命令)
- Linux 下反汇编软件分析工具使用详解(linux反汇编软件)
- 关闭Linux系统防火墙: 步骤与技巧(关闭linux的防火墙)
- Linux的分支:新的系统架构设计(linux的分支)
- 驱动Linux下字符设备驱动开发入门(linux下字符设备)
- 深度探索Linux认证体系(linux认证体系)
- Linux网卡配置路径详解(linux网卡配置路径)
- Linux下驱动显卡:一步步安装过程详解(linux装显卡驱动)