一、Linux 大内存页特性
二、HugePages
1、概念介绍
2、配置 HugePages 优缺点
不需要内存页交换;
减轻快表压力;
减轻换页表的负载;
提高内存的性能,降低 CPU 负载;
3、HugePages 使用建议
4、使用 HugePages 注意事项:
如果未调整 HugePages ,可能会引发下面的问题:
数据库性能低下;
出现内存不足或者过度使用交换空间;
数据库实例不能被启动;
关键性系统服务故障;
5、使用情况与配置查看:
cat /proc/sys/vm/nr_hugepages
2)查看大页的使用情况:
$ grep Huge /proc/meminfo
HugePages_Total: 150
HugePages_Free: 150
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
6、HugePages 配置:
1)设置 memlock(内存锁):
vim /etc/security/limits.conf
在文件最后添加信息:
mysql soft memlock unlimited
mysql hard memlock unlimited
2)修改/etc/sysctl.conf:
vi /etc/sysctl.conf
添加/修改信息:
kernel.shmmax = 17179869184
kernel.shmall = 4194304
3)查看 mysql 用户的组信息:
id mysql
4)配置使用大页内存的用户组:
more /proc/sys/vm/hugetlb_shm_group
sysctl -w vm.hugetlb_shm_group=27
5)修改参数停止实例并重启生效:
vi /mysql/data/3306/my.cnf
[mysqld]
large-pages
6)验证 HugePages 配置:
cat /proc/meminfo
三、Transparent Huge Pages
1、介绍
2、Transparent Huge Pages 的使用建议
ORACLE 官方不建议使用 RedHat 6 、OEL 6 、SLES 11 and UEK2 kernels 时开启透明大页。在 Oracle Linux 6.5、RHEL Linux 6.5+ 版中,已删除 Transparent HugePages 。
3、Transparent Huge Pages 的优点
可以使用 swap ,内存页默认是2M大小,需要使用 swap 的时候,内存被分割为4k大小; 对用户透明,不需要用户做特殊配置;
不需要依某种库文件;
4、使用情况与配置查看
1)查看透明大页是否启用了:
# cat /sys/kernel/mm/transparent_hugepage/enabled
2)使用情况监控:
# cd /sys/kernel/mm/transparent_hugepage/khugepaged
说明:
alloc_sleep_millisecs:多长时间整理一次碎片;
pages_collapsed 一个扫描周期被扫描的内存页数;
scan_sleep_millisecs:多长时间扫描一次。
5、关闭透明大页功能
1)临时关闭:
# echo never >> /sys/kernel/mm/transparent_hugepage/enabled
# echo never >> /sys/kernel/mm/transparent_hugepage/defrag
在/etc/rc.local 文件中加入如下内容:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
四、Huge Pages 和 Transparent Huge Pages 区别
这两者的区别在于大页的分配机制,标准大页管理是在系统启动时预先分配的,而透明大页管理则是动态分配的方式(在运行时由 khugepaged 进程动态的分配),可以实时配置,不需要重启就能生效配置。
故障分析 | Cassandra 用户信息 list Error
转文至此。
以下是个人微信公众号,欢迎关注:

文章转载自戏说数据那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




