Bazi durumlarda sunucumuz artik var olan sitelerin bindirdigi yuku kaldirmamaya baslayacaktir. Yukselen hitler, kullandigimiz script’in hatalari, sql sorgulari v.s derken bi bakmissiniz siteleriniz ayvaslamaya, sunucunuzda zorlanmaya baslamis. Sunucu optimizasyonu yapmaniz gerektiginde ilk oncelik cok fazla sql sorgusu kullaniyorsaniz eger mysql uzerinde olmalidir. Genel olarak mysql yi 1-2 gun boyunca inceleyip size sonuc dondurecek ve saglikli my.cnf ayarini verecek gerekli eklentiler mevcut ancak buna 2. seride deginecegim. Suanda basit yoldan sitelerimizde kullanilan sql sorgularini cache etmek icin mysql nin bir ozelligini acmayi gosterecegim..

Mysql optimizasyonu icin sunucunuzda bulunan my.cnf dosyasini kullanmamiz gerekli. Genelde default olarak icerisinde bir kac ayar mevcuttur, ancak bu standart oldugu icin ilerde sitemizin yukunu kaldiracak duzeyde malesef olamiyor. Cunku kullanilan script cok fazla sql sorgusu iceriyorsa siddetle SQL CACHE ayarlarini acmanizi tavsiye ederim. Bu Hem sitenizin acilisinda, hemde kullanirken bir hiz kazandiracagi gibi, sunucuda agirlasan yukun birazini sirtlayacaktir..

Oncelikle bu uygulamayi yapabilmeniz icin sunucu sahibi olmaniz gerek ve ssh baglanti izniniz olmali.. Baslamadan once duzenleme yaptiginiz dosyalari yedeklemeyi unutmayin.

Sunucumuzdaki my.cnf dosyasini aciyoruz. Bu genelde asagidaki yolda bulunur:
/etc/my.cnf (centos, cpanel ve plesk’de denenmistir)

bu dosyayi actiginizda icerisi bos ise yada belli kodlar varsa siz fazla kurcalamadan asagidaki kodlari [mysqld] sekmesinin altinda bir yere ekleyin:

thread_cache_size = 128
key_buffer = 256M
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 4M
table_cache = 1000

Cok fazla tablolu siteleriniz varsa table_cache = 1000 kismindaki sayiyi artirmanizi oneririm yada az ise azaltmanizi..

Bu ayarlari kendinize gore duzenleyebilirsiniz. Genelde her sunucu ayni ozelliklerde olmuyor. Eger ram ve sunucu ozelliginiz cok dusuk ise verilen limitleri dusurebilirsiniz. Ancak oncesinde sql cachede etkili olan kisimlarin aciklamasini yapmamiz gere, bundan sonrasinda mantikli sonuclar ile sunucunuza goze duzenleme yapabilirsiniz.

“key_buffer = 256M” kismi, Myisam index blokları icin kullanilir. Gelen istekler disk yerine hafizadan saglanir.

“query_cache_type = 1” kismi, cache’i açtığımızı belirtir. 0 yapınca kapatmis oluyoruz, ancak biz suanda 1 yaparak bu ozelligi aciyoruz.

“query_cache_limit = 4M” kismi, cachelenecek maximum sorgu limitini belirler, 4mb’a kadar olan sorgulari cache alarak hafizasinda tutar.

“query_cache_size = 128M” kismida toplamda cachelenecek dosyalar icin sunucuda kullanilacak maximum alani ifade eder. Artirabilirsiniz, yada dusurebilirsiniz..

“table_cache = 1000” kismi, tablolarin acilmasini ve okunmasini hizlandirmak icin daha once acilan tablolar icin cache olusturmasidir. Myisam tablo yapısında tum tablolar sorgu seklinde sunucuda tutulmaktadir, bunlarin acilip okunmasi gibi islemler icin cacheyi acmak bu sureyi daha hizlandiracagi icin faydasini gosterecektir..

Kullandiginiz sisteme gore inceleme yaparak my.cnf ayarlarini ozellestirebilirsiniz. Bunun icin onerecegim bir yolda hatali ve sorunlu sql sorgularini ogrenmektir. Bunun icin my.cnf dosyasina asagidaki kodlari ekleyerek verilen yolda toplanan hata loglarini inceleyip sorunlu sorgulari ogrenebilirsiniz:

log_slow_queries=/var/log/slow-queries.log
long_query_time=10
log-queries-not-using-indexes

Sonrasinda sorunlu sorgular icin scriptlerinizi optimizasyonudan gecirebilirsiniz.. Simdilik bu kadar yazinin diger serilerinde optimasyon hakkinda kullanilan terimler hakkinda da bilgi verecegim. Gerek kullanici tarafli yazilimlar, gerekse kullanilan scriptler hakkinda da optimasyon onerilerim olacak. Simdilik kolay gelsin..

Orjinal Kaynak…

2 YORUMLAR

Bir Cevap Yazın