Saya ingin menonaktifkan transparent_hugepage (THP) pada instance CentOS 7 EC2, yang diaktifkan secara default:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Pengaturan ini dapat diubah secara manual:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... tetapi perubahannya hilang setelah reboot.
Saya mencoba memasukkan echo never [...]
instruksi ke dalam file rc.local
dan saya cloud.cfg
, tetapi tidak berhasil.
Saya juga mencoba menambahkan pengaturan transparent_hugepage=never
ke baris kernel /etc/grub.conf
(seperti yang dijelaskan di sana ), tetapi tidak berfungsi lebih baik.
Jadi ... bagaimana saya bisa menonaktifkan THP pada CentOS 7 yang berjalan pada instance AWS EC2?
sunting: judul diubah ... Saya perlu menonaktifkan defrag THP dan THP
amazon-ec2
centos7
grub
vcarel
sumber
sumber
Jawaban:
Solusinya sedang disetel , seperti yang ditunjukkan oleh @ michael-hampton. Bagian yang sulit adalah bahwa plugin vm hanya dapat mengkonfigurasi
/sys/kernel/mm/transparent_hugepage/enabled
pengaturan.Untuk menonaktifkan
/sys/kernel/mm/transparent_hugepage/defrag
pengaturan juga, saya harus membuat skrip yang dipanggil oleh profil saat mulai.Pada akhirnya, solusi lengkapnya adalah:
langkah 1 : Buat direktori untuk menyimpan profil khusus:
langkah 2 : Buat profil
/etc/tuned/custom/tuned.conf
:Perhatikan bahwa profil ini diwarisi dari virtual-guest , yang merupakan profil aktif saya, sebenarnya terlihat sesuai untuk server virtual (EC2). Anda dapat melihat profil aktif Anda dengan perintah
tuned-adm active
. Jika Anda penasaran, Anda dapat melihat konten dari profil yang telah ditentukan di/usr/lib/tuned/
langkah 3 : Buat skrip
/etc/tuned/custom/script.sh
:Jadikan itu dapat dieksekusi:
langkah 4 : Aktifkan profil baru:
Sekarang Anda harus mendapatkan:
Ini akan bertahan setelah reboot.
sumber
Selain mengatur baris perintah grub, Anda juga perlu mengkonfigurasi disetel. Tetapi tidak menggunakan instruksi yang Anda tautkan, karena mereka begitu penuh kesalahan, hanya perlu setengah hari untuk menjelaskan semuanya.
Buat profil yang disetel khusus (yang akan saya panggil
custom
), lalu atur profil. Anda akan mendasarkannya pada profil yang ada, sepertivirtual-guest
jika Anda menjalankan mesin virtual (EC2 tentu saja), atauthroughput-performance
jika Anda menggunakan mesin fisik.Buat direktori untuk menyimpan profil khusus:
Buat profil khusus
/etc/tuned/custom/tuned.conf
, misalnya:Sekarang atur profil:
sumber
Coba juga ini
sumber
Anda dapat mengedit file /etc/rc.local dan menambahkan perintah berikut ini ke file itu:
dan jalankan
chmod +x /etc/rc.d/rc.local
untuk memastikan skrip akan dieksekusi saat boot. diuji di Amazon Linux 2.sumber
Sunting: jawaban di atas salah , karena kenop halaman transparan yang besar tidak ada pada sysctl saat ini. Maaf atas kebisingannya.
Anda dapat memasukkan nilai yang diinginkan di
/etc/sysctl.conf
.Dari halaman manual sysctl.conf (5):
sumber