Linux sunucularda otomatik olarak Huge Page Değeri hesaplamak

Merhabalar,
Büyük SGA e sahip olan veritabanlarımızda huge page ayarı yapmak sanal bellek yönetimi konusunda bize çok büyük kolaylık sağlar. Huge page ayarlamadan önce veritabanımızda Automatic Memory Management (AMM) ayarının yapılmamış olması gerekiyor. Çünkü AMM ve Huge Page Linux sunucularda uyumlu çalışmamaktadır. Onun yerine Huge Page kullanmak istediğiniz sunucularda, Automatic Shared Memory Management ve Automatic PGA Management yapmanız gerekecektir. Diğer önemli nokta ise bu scripti çalıştırmadan önce veritabanınızın çalışır halde olması gerekmektedir.
İlk önce sunucumuzdaki “memlock” değerlerini RAM miktarına göre ayarlamamız gerekmektedir. Örneğin 64 GB RAM imiz varsa, bu değeri KB olarak hesaplayıp, bu değerden küçük bir değer vermemiz gerekecektir. Bu değeri de “/etc/security/limits.conf” dosyasına yazmamız gerekiyor.

vi /etc/security/limits.conf

* soft memlock 60397977
* hard memlock 60397977

Bu ayarı yaptıktan sonra scriptimizi çalıştırabiliriz.
Aşağıdaki scripti veritabanı sunucumuzda oluşturup, çalışma yetkisi verelim.

Scripti buradan indirebilirsiniz.
hugepages.sh

$ chmod +x hugepages_settings.sh
$ ./hugepages_settings.sh
Recommended setting: vm.nr_hugepages = 1496

Gördüğünüz üzere script otomatik olarak bize huge page değerini vermektedir.
Peki buradaki 1496 değerini ne yapacağız?
“/etc/sysctl.conf” dosyasını root kullanıcısıyla açıp uygun bir yere aşağıdaki satırı yazmamız gerekiyor.

....
vm.nr_hugepages = 1496
...

Bu eklemeyi yaptıktan sonra veritabanımızı durdurup, sunucumuzu yeniden başlatmamız gerekecektir.
Sunucuyu yeniden başlattıktan sonra aşağıdaki komutu çalıştırdığımızda Huge Page ayarının yapılmış olduğunu göreceksiniz.

# grep HugePages /proc/meminfo
HugePages_Total: 1496
HugePages_Free: 485
HugePages_Rsvd: 446
HugePages_Surp: 0