Oracle Sohbetleri II – sysctl.conf ve limits.conf içi parametreler
Hepimiz çeşitli sitelerden kullandığınız sisteme göre Oracle Database için sysctl.conf ve limits.conf dosyaları ayarlarını görmüşüzdür. Ve bunları Linux sistemimizde etc/sysctl.conf ve etc/security/limits.conf adreslerindeki dosyalara yazmışızdır. Peki nedir bunlar? Ne işe yararlar? Bu makalemde bu konudan bahsedeceğim.
1.0 sysctl.conf parametreleri
Öncelikle sysctl.conf dosyasını ele almak istiyorum. Bu dosyanın içine yazacağımız parametreler aşağıdaki gibidir;
kernel.shmmax = 536870912
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
Gelin sıra sıra inceleme yapalım;
Bu komut, yapılan işlemin(process) geçerli durumunu barındıran çekirdekteki alanın herhangi bir kaza(crash) anında kaydedilmesini sağlar.
AIO (Asynchronous Input Output), adından da anlaşılacağı gibi giriş ve çıkış process-lerinin düzenlendiği bir I/O çeşididir. Bu prametrede de giriş çıkış işlemlerinin maximum değeri belirtilmiştir.
İzin verilen maximum açık dosya sayısıdır.
shmall(Shared Memory All), bellek içerisindeki paylaşılan segmentlerin büyüklüğüdür.
kernel.shmmax = 536870912
Tek bir process için paylaşılan segmentin maximum alanını tanımlar. Bu değer fiziksel RAM-den fazla olamaz.
Sistem çapındaki maximum paylaşımlı segment sayısı. Bazı forumlarda bu parametreyi “kernel.shmmin” olarak değiştirenleri gördüm. Bu kullanım yanlıştır. Zaten terminalde sysctl.conf dosyasını akifleştirirken hata alırsınız. Koyu harflerle yazdığım kullanım doğrudur.
kernel.sem = 250 32000 100 128
Bu parametre, çekirdeğimize verdiğimiz semaphore parametreleridir. Semaphore, bellek içerisindeki segmentleri kontrol eden birimdir. Kısaca bunlar için sistemin trafik polisleri de diyebiliriz.
net.ipv4.ip_local_port_range = 9000 65500
Lokal portumuzun ayarını tanımladığımız kısımdır.
net.core.rmem_default=4194304
Kernel network parametresidir. Sokete gelen, byte cinsinden, varsayılan sinyal ayarıdır.
net.core.rmem_max=4194304
Kernel network parametresidir. Sokete gelen, byte cinsinden, maximum sinyal ayarıdır.
net.core.wmem_default=262144
Kernel network parametresidir. Soketten giden, byte cinsinden, varsayılan sinyal ayarıdır.
net.core.wmem_max=1048586
Kernel network parametresidir. Soketten giden, byte cinsinden, maximum sinyal ayarıdır.
Bu dosyaya parametrelerini girdikten sonra terminalde “/sbin/sysctl -p” komutunu çalıştırmalı, kernel-i bu şekilde ayarlamalısınız.
2.0 limits.conf parametleri
Bu dosyanın sysctl.conf-a nazaran daha az parametresi vardır.
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
İşlemlerin(process) maximum sayısını belirler.
Eğer soft nproc-tan daha fazla işleme ihtiyaç duyulursa, işlem sayısının ulaşacağı maximum sayı bu parametrede yazılır. Bazı kullanıcılar bu iki parametreyi eşit yazar.
Kullanıcı login olduktan sonra açılabilecek dosya sayısını belirler.
Kullanıcı login olduktan sonra açılabilecek maximum dosya sayısını belirler.
Database işlemlerinde eğer kullanıcı maximum dosya sayısında hata alıyorsa “ulimit -n 65536” yazarak dosya sayısını hard nofile olarak değiştirebilir. Bu parametreler bu yüzden önemlidir ve yazılması gerekir.
Yazılması zorunlu olmamakla birlikte saklanacak yığın sayısıdır.
2 dosyamızın parametreleri böyledir. Yazdığım parametreleri ayrıntılı olmasada ne olduğunu bilerek yazmak her zaman beni mutlu etmiştir.