001、大页内存管理
建议:关闭
Transparent HugePages:大页内存管理,不过他和标准的大页内存管理有区别。
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变。
因为Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。所以ORACLE是建议不使用Transparent HugePages功能的,如果需要大页内存管理功能来加强性能,建议使用标准的大页内存管理。
尽管Transparent HugePages的本意是为提升性能,但某些数据库厂商还是建议直接关闭(比如说Oracle、MongoDB等),否则可能导致性能下降,内存锁,甚至系统重启等问题。
比较流行的关闭方法有两种
第一种:在/etc/rc.local中加入如下两行
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag‘ >>/etc/rc.d/rc.local
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ >>/etc/rc.d/rc.local
第二种:
1 .编辑 /etc/default/grub,在GRUB_CMDLINE_LINUX加入选项 transparent_hugepage=never
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=”$(sed ‘s, release .*$,,g’ /etc/system-release)”
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=”console”
GRUB_CMDLINE_LINUX=”rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet transparent_hugepage=never”
GRUB_DISABLE_RECOVERY=”true”
2.重新生成grub配置文件
On BIOS-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/grub2/grub.cfg
On UEFI-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
step3 重启你的系统
验证结果
重启前
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
重启后
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
002、swap内存
建议:vm.swappiness = 10
swappiness,Linux内核参数,控制换出运行时内存的相对权重。
swappiness参数值可设置范围在0到100之间。 低参数值会让内核尽量少用交换,更高参数值会使内核更多的去使用交换空间。
默认值为60(参考网络资料:当剩余物理内存低于40%(40=100-60)时,开始使用交换空间)。
对于大多数操作系统,设置为100可能会影响整体性能,而设置为更低值(甚至为0)则可能减少响应延迟。
swappiness参数值说明
vm.swappiness = 0
仅在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
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)
修改swappiness的值
1)临时设置(重启后失效)
sysctl -w vm.swappiness=10
sysctl -a | grep vm.swappiness
vm.swappiness = 30
echo ‘vm.swappiness = 10‘ > /etc/sysctl.d/swappiness.conf
sysctl -a | grep vm.swappiness
原文地址:http://www.cnblogs.com/suyj/p/16878901.html