操作系統(tǒng):
[root@oradb ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.4 (Santiago)
數(shù)據(jù)庫(kù):
MySQL> select version();
+-----------+
| version() |
+-----------+
| 5.6.27 |
+-----------+
1 row in set (0.00 sec)
在這個(gè)測(cè)試中我們?cè)O(shè)置400MB的大頁(yè)內(nèi)存給 MYSQL使用
1. 關(guān)閉匿名大頁(yè)內(nèi)存
下面的命令輸出為 [always] 表示開啟匿名大頁(yè)內(nèi)存,需要關(guān)閉
[root@oradb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] never
在 /boot/grub/grub.conf 文件中添加 transparent_hugepage=never 禁止匿名大頁(yè)內(nèi)存
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=bfd79be7-6446-4864-bc1f-ad15d4b242ad rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet transparent_hugepage=never
initrd /initramfs-2.6.32-358.el6.x86_64.img
重啟操作系統(tǒng),然后檢查是否禁止了匿名大頁(yè)
[root@oradb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always [never] # 已經(jīng)成功禁止匿名大頁(yè)內(nèi)存
[root@oradb ~]# cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB # AnonHugePages 為零,表示已經(jīng)成功禁止了匿名大頁(yè)內(nèi)存
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB # 大頁(yè)內(nèi)存的頁(yè)面大小是2MB
2. 在內(nèi)核參數(shù)中配置400MB的大頁(yè)內(nèi)存
# vi /etc/sysctl.conf
# config hugepages
# vm.nr_hugepages = MYSQL需要使用的內(nèi)存 / 大頁(yè)的頁(yè)面大小 = 400/2=200
vm.nr_hugepages=200
vm.hugetlb_shm_group=507 # 507是MYSQL所屬組ID
[root@oradb ~]# sysctl -a |grep shmmax
kernel.shmmax = 68719476736
[root@oradb ~]# sysctl -a |grep shmall
kernel.shmall = 4294967296
操作系統(tǒng)默認(rèn)已經(jīng)設(shè)置 kernel.shmmax=64GB,kernel.shmall=4GB,已經(jīng)超過(guò)我們
需要的內(nèi)存量(400MB)所以不需要調(diào)整這兩個(gè)參數(shù)。
3.重新加 LINUX 載內(nèi)核參數(shù)
sysctl -p
4. 設(shè)置 MYSQL用戶限制內(nèi)存鎖定400MB
vi /etc/security/limits.conf
mysql soft memlock 409600 #單位為KB,我們配置的是MYSQL用戶限制內(nèi)存鎖定400MB
mysql hard memlock 409600
5. 配置MYSQL啟用大頁(yè)內(nèi)存
[mysqld]
large-pages
6. 啟動(dòng)MYSQL
/app/oracle/oradata2/mysql-5.6.27/bin/mysqld_safe --defaults-file=/app/oracle/oradata2/mysql-5.6.27/my.cnf --user=mysql &
檢查已經(jīng)使用了大頁(yè)內(nèi)存
[root@oradb mysql-5.6.27]# cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
HugePages_Total: 200
HugePages_Free: 197
HugePages_Rsvd: 67
HugePages_Surp: 0
Hugepagesize: 2048 kB
HugePages_Total為所分配的頁(yè)面數(shù)目,和Hugepagesize相乘后得到所分配的內(nèi)存大小。200*2/1024大約為200MB。
HugePages_Free為從來(lái)沒(méi)有被使用過(guò)的Hugepages數(shù)目。即使 MYSQL INNDOB 緩沖池已經(jīng)分配了這部分內(nèi)存,但是如果沒(méi)有實(shí)際寫入,
那么看到的還是Free的。這是很容易誤解的地方。
HugePages_Rsvd為已經(jīng)被分配預(yù)留但是還沒(méi)有使用的page數(shù)目。在 MYSQL 剛剛啟動(dòng)時(shí),大部分內(nèi)存應(yīng)該都是Reserved并且Free的,隨著
INNDOB 緩沖池的使用,Reserved和Free都會(huì)不斷的降低。
HugePages_Free – HugePages_Rsvd 這部分是沒(méi)有被使用到的內(nèi)存,如果沒(méi)有其他的 MYSQL實(shí)例,這部分內(nèi)存也許永遠(yuǎn)都不會(huì)被使用到,也就是被浪費(fèi)了。
在這個(gè)測(cè)試中沒(méi)有使用的大頁(yè)內(nèi)存是 197-67=130*2=260MB。
文章標(biāo)題:在LINUX平臺(tái)配置MSYQL支持大頁(yè)內(nèi)存
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article2/jdjjoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、企業(yè)建站、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)