Merhabalar,
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;
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
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;
fs.suid_dumpable = 1
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.
fs.aio-max-nr = 1048576
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.
fs.file-max = 6815744
İzin verilen maximum açık dosya sayısıdır.
kernel.shmall = 2097152
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.
kernel.shmmni = 4096
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
oracle soft nproc 2047
İşlemlerin(process) maximum sayısını belirler.
oracle hard nproc 16384
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.
oracle soft nofile 1024
Kullanıcı login olduktan sonra açılabilecek dosya sayısını belirler.
oracle hard nofile 65536
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.
oracle soft stack 10240
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.
Renkli günler…