/etc/sysctl.conf
ที่จะทำให้ตัวเลือกเช่นถาวรนี้คุณมักจะเพิ่มพวกเขาไปยังแฟ้ม คุณสามารถดูรายการตัวเลือกทั้งหมดที่มีโดยใช้คำสั่งนี้:
$ sysctl -a
ตัวอย่าง
$ sudo sysctl -a | head -5
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 6000000
kernel.sched_latency_ns = 18000000
kernel.sched_wakeup_granularity_ns = 3000000
kernel.sched_shares_ratelimit = 750000
คุณสามารถค้นหาhugepage
ในผลลัพธ์เช่น:
$ sudo sysctl -a | grep hugepage
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.hugepages_treat_as_movable = 0
vm.nr_overcommit_hugepages = 0
มันไม่ได้มี
transparent_hugepage
อย่างไรก็ตามการมองผ่านการส่งออกผมไม่ได้เห็น Googling อีกเล็กน้อยฉันเจอหน้า Oracle นี้ซึ่งกล่าวถึงหัวข้อนี้มาก หน้ามีบรรดาศักดิ์: HugePages การกำหนดค่าสำหรับ Oracle บน Linux (x86-64)
โดยเฉพาะในหน้านั้นพวกเขาพูดถึงวิธีการปิดใช้งานคุณลักษณะ hugepage
สิ่งที่สกัดมา
วิธีที่ต้องการเพื่อปิดการใช้งาน Huge HugePages คือการเพิ่ม "transparent_hugepage = never" ลงในบรรทัดการบูตเคอร์เนลในไฟล์ "/etc/grub.conf"
title Oracle Linux Server (2.6.39-400.24.1.el6uek.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.39-400.24.1.el6uek.x86_64 ro root=/dev/mapper/vg_ol6112-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk
LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_DM rd_LVM_LV=vg_ol6112/lv_swap rd_LVM_LV=vg_ol6112/lv_root rhgb quiet numa=off
transparent_hugepage=never
initrd /initramfs-2.6.39-400.24.1.el6uek.x86_64.img
เซิร์ฟเวอร์จะต้องรีบูตเพื่อให้สิ่งนี้มีผล
หรือคุณสามารถเพิ่มคำสั่งลงใน/etc/rc.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
ฉันคิดว่าฉันจะไปกับตัวเลือกที่ 2 ตั้งแต่แรกจะมีความเสี่ยงของการได้รับการตั้งค่าเมื่อคุณอัพเกรดจากเคอร์เนลหนึ่งไปยังอีก
คุณสามารถยืนยันได้ว่ามันทำงานกับคำสั่งต่อไปนี้หลังจากรีบูตเครื่อง:
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]