WEB Server Performansını Nasıl Arttırırım? -4

Filed in Apache | Gezegen | Lighttpd | Linux | Linux-Komutlar Leave a comment

Performans arttırımı konulu makalemin 4. kısmında sizlere database performans arttırımı ile ilgili ipuçlarından bahsedeceğim. Tabiiki bahsedilecek databaseler MySQL ve PostgreSQL dir. PostgreSQL Performansı arttırımı konusunu daha önce işlemiştim. Fakat bazı düzenlemeler yapmak amacıyla şuan yayında değildir. Düzenlemelerden sonra yayına almayı düşünüyorum ve sizi MySQL başarı arttırımı ile başbaşa bırakıyorum.

5- Database Performans Arttırımı

a) MySQL Performans Arttırımı

b) PostgreSQL Performans Arttırımı

5- Database Performans Arttırımı

ADOdb performance monitor uygulaması ile database yapılacak performans iyileştirmelerini görebilirsiniz.

a) MySQL Performans Arttırımı

  • Burada yapacağınız iyileştirmeler mysql in conf dosyası olan my.cnf üzerinde yapacağınız işlemlerdir. Dosyanın sahip olduğun değişkenler ve son değerlerini görmek için aşağıdaki komutu kullanabilirsiniz;
SHOW STATUS;
SHOW VARIABLES;
 

UYARI: ayar değişikliklerine başlamadan önce veritabanı yedeği almanızı öneririz ve her değişiklikten sonra mysql i restart etmeniz gerekmektedir.

  • İmkanınız varsa MySQLTuner ı çalıştırarak bu scriptin mevcut mysql serverınıza en uygun konfigürasyon değerlerini seçmesini sağlayabilirsiniz.
  • query cache değerini 1 yapın.
query_cache_type = 1. 
  • Diğer cache değerlerini aşağıdaki gibi ayarlayabilirsiniz. Eğer sürekli update işlemi yapıyorsanız bu işlem performans artışı sağlayacaktır.
query_cache_size = 36M
query_cache_min_res_unit = 2K. 
  • Aşağıdaki sorgu ile veritabanınıza açmış olduğunuz tablo sayısını bulup opened_tables > 3 * table_cache formülüne göre table_cache sayınızı ayarlayın. Bu sayı aynı zamanda yüklenilen modül ve plugin lerin miktarına göre değişebilir.
mysql>SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='yourdbname';
table_cache = 512 #(table_open_cache in MySQL > 5.1.2)
  • Aşağıdaki formüle göre thread cache miktarını hesaplayın ve değerini %100 doğrulukla atayın.
thread cache utilization (%) = (threads_created / connections) * 100
  • key buffer değeri SELECT sorgularına erişim hızıyla ilgili parametredir. En doğru değeri index dosyasının büyüklüğüne bağlıdır(.myi). Tavsiye edilen değer 32M dır. İdeal olarak database e 100 adet SELECT isteği yollayıp sonucuna göre değeri bulabilirsiniz. Aşağıdaki formüllerden yararlanabilirsiniz.
key_read / key_read_requests < 0.01
key_write / key_write_requests <= 1.0
 
  • maximum number of connections değerini doğru olarak ayarlamanız kullanıcılarınızın “To many connections” hatasını almaması için önemlidir. Bu değişkenin total memory kullanımını etkilediğini bilerek dikkatli olmalısınız. Mysql connectionları milisaniyeler içerisinde sonlandığından yoğun yüke sahip sistemlerde bile bu değeri 200 ün üzerine çıkarmak uygun değildir.
  • Yoğun delete ve update işlemleri olan tablolarınızı optimize ediniz. Bu sayede index leriniz yenilenecektir.
mysql>CHECK TABLE mdl_tablename;
mysql>OPTIMIZE TABLE mdl_tablename;
  • Herhangi bir tabloda problem olmasına karşın REPAIR TABLE komutunu kullanabilirsiniz.
  • Her hafta veya her ay mysql servisini durdurarak myisamchk komutunu çalıştırmak veritabanına bakım işlemlerini yapacaktır.
#myisamchk -a -S /pathtomysql/data/*.MYI

UYARI: komutu başlatmadan önce mysqld prosesinin durdurulmuş olması gerekmektedir. Aksi takdirde data kaybı yaşayabilirsiniz.

  • Geçici tabloların diske kaydedilmesi işleminin sayısını azaltın. Bunu created_tmp_disk_tables tablosundaki değeri okuyarak görebilirsiniz. Eğer bu sayı %5 ten fazla ise tmp_table_size değerini azalma görene kadar azaltın. Bu durumun RAM kullanımına etki ettiğini de dikkate almanızı tavsiye ederim.
  • Tablolarınız MyISAM formatında ise ve herhangi bir performans kazancı yaşamadığınızı düşünüyorsanız my.cnf ta InnoDB yi kapatın. skip-innodb parametresini my.cnf ye ekleyin.

Burada bulunan forumdaki tartışmadan yararlanabilirsiniz.

b) PostgreSQL Performans Arttırımı

Başka bir makalede daha ayrıntılı değinilecektir.

Web Server Performans Tuning konulu toplam 4 makaleden oluşan seride sizlere web serverınızı en verimli nasıl kullanabileceğinizi anlatmaya çalıştım. Umarım buradaki bilgiler işinize yarar. Herhangi bir kısımda takılırsanız yardımcı olmaya çalışırım. Hepinize performansı tam tuning olmuş mutlu günler dilerim…

KAYNAKLAR;

http://blog.digitalstruct.com/2008/01/31/performance-tuning-overview/

http://blog.stuartherbert.com/php/2008/01/31/more-about-performance-tuning/

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html#page-header

http://docs.moodle.org/en/Performance

http://docs.moodle.org/en/lighttpd

http://www.devside.net/articles/apache-performance-tuning

http://linuxbox.co.uk/vbulletin_performance_tuning.php

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Share
PDF Printer    Send article as PDF   

, , , , ,

TOP