Apache günümüzde en fazla kullanılan web sunucusu olma özelliğini taşıyor. Bu özelliğinin nedenleri arasında modüler olması ve konfigürasyon olanaklarının geniş olması bulunmakta. Apache ile alakalı en çok karşılaştığımız sorulardan birisi, hiç şüphesiz "Apache'yi nasıl en iyi performans için ayarlarım?" sorusudur. Aslında bunun net bir cevabı yok. Zira Apache'de her yazılım gibi, farklı değişkenlerin etkisinde performans gösteriyor. Bulunduğu sunucunun hızı, üzerinde yüklü modüller, etkileşimli çalıştığı bileşenler (php, mysql) bu performansa direkt etki eden unsurlar. Apache konfigürasyon dosyasındaki performansa dair bileşenleri incelemek gerekirse;
MaxClients : Aynı anda sunucuya kurulabilecek bağlantı sayısıdır. Bu hesabı kabaca RAM miktarınıza göre yapmanızı tavsiye ederim. Gigabyte başı 100 kullanıcı olarak hesap edilebilir. Şunu da belirtelim ki, aylık ortalama 1 TB veri transferi yapan bir sunucuda bu değer ortalama 75-100 arasında oluşmaktadır.
MaxRequestsPerChild: İşte en belirleyici değişkenlerden birisi. Bu değişken, bir Apache işlevinin sonlandırılıp yeniden başlatılması için kaç isteğe cevap vermesi gerektiğini belirtir. Burada belirtilen sayıya ulaşılınca, bu işlev biter ve sıfırdan tekrar bir işlev oluşur. Bu sayının düşük olması , her seferinde bir işlevin kendini yenilemesi nedeni ile sunucu yükünü arttırır. Fazla olması ise , olası sorunlarda bu işlevlerin kararsız kalmasına neden olabilir.
MinSpareServers ve MaxSpareServers: Adından da anlaşılacağı gibi, Apache'nin yedekte bekleteceği sunucu işlevi sayısıdır. Bu sayıların 5/10 olarak kalması normal kabul edilir. MaxSpareServers ne kadar büyük olur ise, harcanan kaynak o kadar artacaktır.
KeepAlive: Bu değişken de Apache performansına birinci dereceden etki eder. Aşılmış olan oturum, MaxKeepAliveRequests ile belirtilen süre geçmeden kapatılmaz. Bu da özellikle bir siteyi barındıran sunucularda iyi sonuçlar verir. Ancak özellikle paylaşımlı hosting hizmeti veren sunucularda, bu değerin açık olması, özellikle gelen isteklerin dağınık olması sebebi ile olumsuz sonuçlar doğurabilir. Eğer KeepAlive açık ise, MaxKeepAliveRequests in 3-5 gibi düşük değerlere ayarlanması uygun olacaktır.
Yazımızın başında da belirttiğimiz gibi, performans sadece bu değişkenlere bağlı değildir. Bu sebep ileweb sunucunuzun performansını bir bütün olarak düşünmeniz gerekir.