Postgresql Linux parameter and Performans

Postgresql Linux parameter and Performans,Veritabanı sistemlerinde sistem üzerinde ne kadar performans ile ilgili  değişiklikler yapsak da bazen daha da performanslı olmasını isteyebiliriz.

Postgresql de performans ayarlarını yapmamız için  ilk olarak başvuracağımız postgresql.conf dosyasıdır. Postgresql.conf nedir ve parametreleri ile ilgili merak ettikleriniz için POSTGRESQL.CONF  isimli yazıma göz atabilirsiniz.

Postgresql.conf da ilgili değişiklikleri yaptık fakat işletim sistemi tarafında da performans kazanmak istiyorsak  kernel parametrelerine bakmamız gerekiyor.

Yazılar da en çok karşımıza gelen aşağıdaki parametreler Postgresql Linux parameter and Performans:

kernel.shmmax

kernel.shmmin

kernel.shmall

kernel.shmseg

kernel.shmmni

kernel.sem

 

Bu parametreler nedir bunlardan bahsedelim.

kernel.shmmax parametresi :Bu parametre, bir shared memory segmentinin en büyük boyutunu belirler. PostgreSQL gibi veritabanı sistemleri büyük bellek alanlarına ihtiyaç duyarlar, bu nedenle bu değerin yeterli büyüklükte olması önemlidir. PostgreSQL, büyük sorguları veya yüksek miktarda veriyi işlerken bu bellek alanlarını kullanabilir.

kernel.shmmax parametresi : Bu parametre, bir shared memory segmentinin en küçük boyutunu belirler. PostgreSQL gibi uygulamaların genellikle minimum boyuttaki segmentlere ihtiyacı yoktur, bu nedenle genellikle varsayılan değer kullanılır.

kernel.shmall parametresi :Bu parametre, sistem genelinde paylaşılan bellek segmentlerinin toplam boyutunu belirler. PostgreSQL gibi bellek yoğun uygulamalar için yeterli büyüklükte bir değer belirlemek önemlidir. Yetersiz bir değer, PostgreSQL’in bellek kotasını aşmasına ve çalışma zamanında hatalara neden olabilir.

kernel.shmseg parametresi: Bu parametre, bir süreç tarafından oluşturulan paylaşılan bellek segmentlerinin maksimum sayısını belirler. PostgreSQL gibi çok iş parçacıklı (multithreaded) uygulamalar için, eşzamanlı işlem sayısı arttıkça daha fazla bellek segmentine ihtiyaç duyulabilir.

kernel.shmmni parametresi: Bu parametre, sistemin genelinde oluşturulabilecek paylaşılan bellek segmentlerinin maksimum sayısını belirler. PostgreSQL gibi çoklu kullanıcıları destekleyen uygulamalar için, eşzamanlı bağlantıların ve işlemlerin yönetilmesi için yeterli sayıda bellek segmentine ihtiyaç duyulabilir.

kernel.sem parametresi:  Bu parametre, sistem genelindeki POSIX semaforlarının yapılandırmasını belirler. PostgreSQL gibi veritabanı sistemleri, çeşitli senkronizasyon işlemleri için semaforları kullanır. Uygun yapılandırma, veritabanı işlemlerinin düzgün bir şekilde senkronize olmasına ve performansın artmasına yardımcı olabilir.

Semafor Nedir?

Semaforlar, çoklu iş parçacıklı veya çoklu işlemci (multithreaded veya multiprocess) sistemlerde eşzamanlılık ve senkronizasyonu sağlamak için kullanılan bir senkronizasyon mekanizmasıdır. Bir semafor, birden çok iş parçacığı veya işlem arasında bir kilit veya senkronizasyon noktası olarak görev yapar.

PostgreSQL gibi veritabanı sistemleri, aynı anda birden fazla istemcinin veya iş parçacığının veritabanına erişmesini sağlamak için semaforları kullanır. Örneğin, aynı anda birden fazla işlemci tarafından paylaşılan bir kaynağa (örneğin, veritabanı tablosuna) erişirken, işlemler arasında çakışmaları (race conditions) önlemek ve güvenli bir şekilde veri erişimini sağlamak için semaforlar kullanılabilir.

Yukarıdakilere ek olarak farklı parametreleri değiştirmemiz gerekmektedir. Bu değerleri sistemimizi izleyerek karar vermemiz daha doğru olacaktır.

Yukarıdaki parametrelerden faydalanarak lokalimde çalışan postgresql veritabanında yük testi yaparak ne kadar faydalı oluyor görelim .

Postgresql yük testi için pgbench programını kullanacağız detaylı bilgi için PGBENCH İSİMLİ YAZIMA göz atabilirsiniz.
İlk olarak sistemde herhangi bir değişiklik yapılmadan önce testlerimizi yapalım.

Gerekli değişiklikleri yapalım.
Önceden hazırladığım sh dosyasını ile işletim sisteminden  sh scriptimi çalıştırarak gerekli değişikleri yapıyorum.

Yukarıdaki scripte ulaşmak isteyenler sayfanın altına yorum yaparak mail adresini eklerse paylaşabilirim.

Parametreleri değiştirdikten sonra tekrardan yük  testimizi yapıyoruz.

 

İkisi arasındaki fark karşılaştırıldığında işlemlerimizin hemen hemen 2 kat daha hızlı bittiğini ve daha çok performans kazandığını görebiliriz.

UYARI: Bu gibi parametre değişiklikleri yapılmadan önce mutlaka sisteminizin yedeğini alın ve  parametrelerin önceki hallerini saklamanızı öneririm.

Loading