Bir sunucu neden kasar?

Google’da “Bir sunucu neden kasar?” gibi bir arama yaptığınızda karşınıza çok fazla bilgi çıkabilir ve bunlardan hangisinin sizin sunucunuzda yavaşlığa sebep olduğunu bulmak hiç de kolay bir iş değildir, fakat kasmanın diğer bir adıyla işlemlerin sunucuda yapılmasının sunucu taraflı bir sıkıntı mı yoksa sizin script’inizden kaynaklı bir sıkıntı mı olduğunu anlamak gerekir.

1) Sunucu taraflı darboğaz

Sunucu tabanlı sıkıntılar sunucunun cpu,ram gibi kaynaklarının yetersiz olmasından kaynaklanabileceği gibi yazılımsal darboğazdan kaynaklanma ihtimali daha yüksektir sunucudaki yazılımdan yazılıma değişmekle birlikte ben Plesk panel kurulu bir sunucudan örnek vereceğim;

Apache apache ile sunuluyorsa yazılımsal darboğaz .Apache yazılımından kaynaklanır fakat php-fpm Apache üzerinden sunuluyorsa hem php-fpm hem de Apache konfigurasyonu kontrol edilmelidir.

Bazen Apache’ye ek olarak Nginx de sunucuda çalışıyorsa sorun ondan da kaynaklanabilir sorunun Apacheden mi yoksa Nginx ten mi kaynaklandığını anlamak için eğer Nginx sadece statik dosyaları sunuyorsa statik dosyalarının yğklenme süresiyle .php dosyalarının yüklenme süresi kıyaslanarak sorunun nerden kaynaklandığı anlaşılabilir.

Konfigurayon sorunlarının yanında sunucuda çalışan fail2ban gibi güvenlik uygulamaları da sunucunun depolama (IO) kaynaklarını tüketerek sunucuda load artışını sağlayabilir deneme yaparken bu tür yazılımların da devre dışı bırakılarak denenmesi gerekir.

2) Script taraflı darboğaz

Bir script yazarken mysql üzerinde yapılan işlemlerin performansının en iyi şekilde ayarlanması gerekmektedir. Scriptinizdeki mysql bağlantısı olan bir sayfanın açılışı uzun sürüyorken bağlantı olmayan bir sayfa kısa sürede açılıyorsa orada mysql ile ilgili bir sıkıntı olma ihtimali göz önüne alınmalıdır.

Mysql performansını arttıracak bazı tavsiyeler;
Tabloda arama yaparken her zaman kısa veri üzerinden arama yapılmalıdır.
örneğin ev adresi üzerinden değil de kullanıcı id si üzerinden gibi.
Arama yapılacak id index olarak veritabanına kayıtlanmalı ve sütun tipleri içerisinden veriye göre uygun olarak (int varchar gibi) değiştirilmelidir.

 

Bir cevap yazın