博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]调整虚拟内存
阅读量:6974 次
发布时间:2019-06-27

本文共 1268 字,大约阅读时间需要 4 分钟。

本文转自,支持原创、尊重原创,分享知识!个人发现有些翻译不当的地方,稍微做了下修改、调整。如果英文足够NB,建议阅读英文。

 

虚拟内存通常被进程、文件系统缓存以及内核消耗。虚拟内存的使用由很多因素决定,受以下参数影响:
swappiness
参数值可为 0-100,控制系统 swap 的使用程度。高数值可优先系统性能,在进程不活跃时主动将其转换出物理内存。低数值可优先互动性并尽量避免将进程转换处物理内存,并降低反应延迟。默认值为 
60
 

Warning

Since RHEL 6.4, setting 
swappiness=0
 more aggressively avoids swapping out, which increases the risk of OOM killing under strong memory and I/O pressure.
A low 
swappiness
 value is recommended for database workloads. For example, for Oracle databases, Red Hat recommends a 
swappiness
 value of 
10
.
 
min_free_kbytes
保证系统间可用的最小 KB 数。这个值可用来计算每个低内存区的高水位线,然后为其大小按比例分配保留的可用页。
 

可破坏您系统的极限值

设定这个参数时请小心,因为该值过低和过高都有问题。
min_free_kbytes
 太低可防止系统重新利用内存。这可导致系统挂起并让 OOM 杀死多个进程。
但将这个参数值设定太高(占系统总内存的 5-10%)会让您的系统很快会内存不足。Linux 的设计是使用所有可用 RAM 缓存文件系统数据。设定高 
min_free_kbytes
 值的结果是在该系统中花费太多时间重新利用内存。
dirty_ratio
规定百分比值。当脏数据组成达到系统内存总数的这个百分比值后开始写下脏数据(pdflush)。默认值为 
20
dirty_background_ratio
规定百分比值。当脏数据组成达到系统内存总数的这个百分比值后开始在后端写下脏数据(pdflush)。默认值为 
10
drop_caches
将这个值设定为 
1
2
 或者 
3
 让内核放弃各种页缓存和 slab 缓存的各种组合。
1
系统无效并释放所有页缓冲内存。
2
系统释放所有未使用的 slab 缓冲内存。
3
系统释放所有页缓冲和 slab 缓冲内存。
这是一个非破坏性操作。因为脏对象不能被释放,建议设置参数值之前运行 
sync
命令。
 

重要

不建议在产品环境中使用 
drop_caches
 释放内存。
要在调节时临时设定这些值,请将所需值 echo 到 proc 文件系统中的适当文件中。例如:要将 
swappiness
 临时设定为 
50
,请运行:
 
要永久设定这个值,则需要使用 
sysctl
 命令。有关详情请参考《部署指南》,网址为。

转载地址:http://riesl.baihongyu.com/

你可能感兴趣的文章
我看项目管理第一回:认识利益相关方,提高思想意识
查看>>
使用git进行版本管理
查看>>
数据结构--树,二叉树
查看>>
MySQL优化—工欲善其事,必先利其器之EXPLAIN
查看>>
mysql性能优化学习笔记
查看>>
禁止 favicon.ico 请求
查看>>
CSS隐藏元素的N种实现方式。
查看>>
Hadoop概念学习系列之为什么hadoop/spark执行作业时,输出路径必须要不存在?(三十九)...
查看>>
UVa567_Risk(最短路)(小白书图论专题)
查看>>
Redis Sentinel实现的机制与原理详解
查看>>
nginx php-fpm安装手记
查看>>
spring注解工具类AnnotatedElementUtils和AnnotationUtils
查看>>
[转]简单介绍如何使用robotium进行自动化测试
查看>>
post和get的区别?
查看>>
android 滚动视图(ScrollView)
查看>>
无限级别菜单下拉
查看>>
Linux oprofile命令
查看>>
HashMap 实现原理(复习)
查看>>
Leetcode: LFU Cache && Summary of various Sets: HashSet, TreeSet, LinkedHashSet
查看>>
JAVA数据结构--队列
查看>>