Evet arkadaşlar apacheniz cok yavaş ise aşagıdaki uygulayın % 70 gibi performans artışı gorursunuz.İlk başta bende inanmıyordum uyguladım ve mukemmel sonuc aldım


Sembolik bağlarla (symbolic links) ilgili ayarlar
Apache, kullanıcı tarafından istenen bir dizin ya da dosyayı işlerken, bir sembolik bağ olup olmadığını inceleyebilir. Apache'nin varsayılan ayarlarında Option FollowSymLinks vardır. Guvenliği duşunen sistem yoneticileri bunu genellikle Option None ya da Option SymLinksIfOwnerMatch yapmaktadır. Ancak bu hızı duşurmektedir. En yuksek performans Option FollowSymLinks yonergesiyle alınmaktadır.

Option SymLinksIfOwnerMatch durumu
Apache bu yonergeyle, normale gore istenen dizinin/dosyanın bir sembolik bağ olup olmadığını kontrol etmek zorundadır. İstenen dizinin derinliğine gore en ust dizinden (/) başlayarak, bu işlem alt dizinlere kadar tek tek yapılmaktadr. Orneğin, istenen belge /usr/local/apache/htdocs/dizin/dosya.html'se, Apache şu dizin/dosyaların hepsinin bir sembolik bağ olmadığını kontrol eder:

(/ asla kontrol edilmez, cunku / her zaman gercek bir dizindir)
/usr
/usr/local
/usr/local/apache
/usr/local/apache/htdocs
/usr/local/apache/htdocs/dizin
/usr/local/apache/htdocs/dizin/dosya.html
Burada onemli olan şudur, /usr/local/apache/htdocs fiziksel (gercek) bir dizin olsa da Apache bunu kontrol etmek zorundadır. Ayrıca yapılan iki işlem de, dosyanın/dizinin gercek sahibini almak, sembolik bağın sahibini almak ve bunları karşılaştırmak. Orneğin, webauthor kullanıcısı şu komutla:

$ln -s /usr/local/apache/htdocs/gizli_dizin /etc

şeklinde bir komutla bir sembolik bağ yaratmışsa, /usr/local/apache/htdocs/gizli_dizin'in sahibi (webuser) ve /etc'nin sahibi (root) sistem cağrıları aracılığıyla alınır ve karşılaştırılır. Bu tip dizinlerin sık cağrılması durumunda tepki suresi duşecektir. Ayrıca, bu karşılaştırma işleminin sonucları onbelleklenmez, dolayısıyla bu kontroller her cağrıda tekrar tekrar yapılır.

Alternatif cozum
Guvenlikten fazla taviz verilmeden gidilecek daha iyi bir cozum, dosyaların kok dizini dışında sembolik bağ kontrolunu acıp, kok dizinin altında kapatmak olabilir.

DocumentRoot /webroot/docs
...

Options FollowSymLinks


Options -FollowSymLinks +SymLinksIfOwnerMatch


Bu şekilde, dosyaların kok dizini altında, sembolik bağı veren kişiyle bağ verilen dosya/dizinin sahibi aynı kişi değilse, Apache o dosyayı/dizini istemciye gondermeyecektir, ve guvenlik de nispeten artmış olacaktır.

Cocuk sunucularla ilgili ayarlar
Apache, tepki suresini arttırmak amacıyla, bir miktar cocuk sunucuyu (child server, fork edilen sunucular) onceden acar ve boşta bekletir. Diğer sunucuların meşgul olması ve yeni bir istemcinin bağlanması durumunda bu sunuculardan bir tanesi gelen isteği karşılar. Ani yuklenmelerin (transient peak) olduğu bir sunucuda, boşta bekleyen sunucuların fazlaca olması tavsiye edilir. Apache'de varsayılan şu iki yonerge vardır:

MinSpareServers 5
MaxSpareServers 10

Bu sayıları aşağıdaki gibi 32 ve 48 şeklinde değiştirmeniz, bir anda 32 istemcinin birden sunucudan dosya istemesi halinde, anında tepki verilebilmesini sağlar:

MinSpareServers 32
MinSpareServers 48

Yine de hatırlatmak gerekir, acılan her cocuk sunucu bellek kullanımını arttırır. Bu sayıyı cok arttırmanız durumunda Web sunucunun kullandığı bellek, fiziksel belleği aşacağı icin sunucu diske swap yapmaya başlar ki bu da performansı duşurur. Dolayısıyla doğru ayarları bulana kadar, bir miktar deneme/yanılma yapmanız gerekebilir.

Bir başka ayar da, cocuk sunucuların olmeden once kac isteğe cevap vereceği ayarıdır. Apache'nin varsayılan ayarı:

MaxRequestsPerChild 10000

şeklindedir. Bu sayıyı cok duşurmeniz halinde (or. 50-100), sunucular surekli olarak oldurulup tekrar başlatılacaktır, ki bu da sunucunun tepki suresini duşurur. Cok yuksek olması durumunda (or. 100,000 ya da sınırsız icin kullanılan 0) ise, cocuk sunucuların bellek akıtma (memory leaking) problemi varsa (or. Solaris'de vardır), bellek kullanımı artacaktır ve sunucunun performansı yine duşecektir. Bu tip bir probleminiz varsa ve sunucunuza gelen trafik surekli yuksek değilse, bu sayıyı 500-1000'e kadar duşurebilirsiniz.

.htaccess'le ilgili ayarlar
Apache'nin bir ozelliği de, bazı dizinlerde bulunabilen .htaccess dosyaları aracılığıyla kullanıcılardan isim/şifre isteyebilmesi ya da IP numaralarını kontrol ederek erişimi kısıtlayabilmesidir. Bazı sistem yoneticileri bu dosyaları kullanabilmek icin şu şekilde bir tanımlama yapabilirler:

DocumentRoot /webroot/docs/
...

AllowOverride AuthConfig


Ancak sembolik bağlarda cıkan durum burada da vardır. Apache bu dizinin altındaki her dizinde (her seferinde bir alta inerek) bir .htaccess dosyasının olup olmadığını kontrol etmek zorunda kalır ve bu da performansı duşurur. Bunun yerine sadece gerekli dizinlerde bu ayar acılarak sunucunun diğer dizinlerde bir kontrol işlemi yapması engellenebilir, ve bu da performansı arttırır. Orneğin, şu şekilde bir tanımlama kullanılabilir:

DocumentRoot /webroot/docs/
...

AllowOverride None


AllowOverride AuthConfig>


Kayıt dosyalarıyla ilgili ayarlar
Apache, sunucuya bağlanan kullanıcıların isteklerinin detaylı bir kaydını tutabilir. Bircok sistem yoneticisi de varsayılanları kullandığı icin genelde şu ikisinden biri tercih edilir:

CustomLog /usr/local/apache/logs/access_log common

CustomLog /usr/local/apache/logs/access_log combined

Eğer Apache'nin tepki suresini hızlandırmak istiyorsanız, kayıtları kapatın! Bu bircok sistem yoneticisine mide spazmı bile gecirtebilecek bir oneridir, ancak Apache gelen her istek icin bu dosyaları acmakta ve gerekli değişkenleri hesaplayıp dosyaya eklemektedir. Bir Web sunucusunda performans genel olarak, dosyaları işleme suresinin duşukluğu ve diske ne kadar az erişim yaptığıyla belirlenir. Hic kayıt tutulmaması ve dosyaların onbelleklenmesi gibi tekniklerle, sunucu minimum seviyede disk erişimi yapacağından tepki suresi cok artacaktır.

Burada kapılınabilecek yanlış bir hukum, kayıt dosyalarına yazılan verilerin miktarının duşurulmesinin performansı arttıracağıdır. Bu kısmen doğrudur, ancak yine de fiziksel disk erişimi her durumda yavaş olduğundan performansı cok arttırmayacaktır.