Apache Optimizasyonu Ve Ayarları

A

Apache optimizasyonu , Hostazor‘da performansınızı önemli ölçüde etkiler. Sunucu performansını artırmanın en kolay yolu, gereksiz modülleri kapatmaktır. Bu makalemiz Apache modüllerini, hangi modüllerin kapatılacağını ve diğer Apache performans ayarlama seçeneklerini kapsar.

apache ayarları

Fonksiyonel komutlar ve yük test programı sorgulaması da dahil olmak üzere, kaynak ayarlarını değiştirmeniz gerekip gerekmediğini belirlemenize yardımcı olabilecek çeşitli araçlar vardır. Hostazor’un kendi Longview servisi sunucunun izlenmesinde de yardımcı olabilir. En azından, sunucunuzun RAM ve CPU kullanımı hakkında bilgi edini. Aşağıdaki  komutlarla kullanım istatistiklerini keşfedin:

echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

Kaynak ayarlama için daha spesifik kaynaklar Apache, Apache mod_status ve Apache2Buddy olarak belirlenmiştir.

İşlem Yaparken Dikkat edilmesi gerekenler
Apache yapılandırmanızda herhangi bir değişiklik yapmadan önce yapılandırma dosyasını yedeklediğinizden emin olun:

Debian / Ubuntu’da:

Cp /etc/apache2/apache2.config ~ / apache2.conf.backup

CentOS / Fedora’da:

Cp /etc/httpd/conf/httpd.config ~ / httpd.conf.backup

Apache mod_status

Apache mod_status, ayrıntılı bir durum sayfası oluşturarak gelen sunucu bağlantılarıyla ilgili bilgileri görüntüler. Bu istatistiğe bir örnek: Apache’nin kendi web sitesinden görebilirsiniz : http://www.apache.org/server-status

Web sitenizin yapılandırma dosyasını açın. Bu dosya Debian / Ubuntu sistemlerinde /etc/apache2/sites-available/example.com.conf adresinde veya CentOS / Fedora sistemlerinde /etc/httpd/conf.d/vhost.conf dosyasında bulunur.

Aşağıdakileri <virtual_hosts> bloğuna ekleyin:

<Location /server-status>
  SetHandler server-status
  Order Deny,Allow
  Deny from all
  Allow from localhost
</Location>

Apache mod_status da, Apache’ye yapılan her istek hakkında ek bilgi sağlayan ExtendedStatus adı verilen bir seçenek sunar. ExtendedStatus’u etkinleştirmek için Apache yapılandırma dosyanızı düzenleyin:

/etc/apache2/apache2.conf (Debian / Ubuntu)
/etc/httpd/confd/httpd.conf (CentOS / Fedora)

ExtendedStatus On

Önemli Not : ExtendedStatus’u etkinleştirmek ek sistem kaynaklarını tüketir.

Apache’yi yeniden başlatın:

Debian / Ubuntu:

service apache2 restart

CentOS / Fedora:

/bin/systemctl reload httpd.service
yada ;
service httpd restart

Kaynak Tüketimini görüntülemek için Lynx’i indirin:

Debian / Ubuntu:

apt-get install lynx

Fedora/CentOS:

yum install lynx

İncelemek için aşağıdaki komutu uygulayın;

lynx http://localhost/server-status

Apache2Buddy

MySQLTuner’e benzeyen Apache2Buddy scripti, Apache kurulumunuzu gözden geçirerek, Apache işlem belleğinize ve genel RAM’inize göre yararlı öneriler yapar. Apache2Buddy, MaxClients yönergesine odaklanan oldukça basit bir script olmasına rağmen çok yararlıdır ve tek bir komut ile çalıştırılabilir:

curl -L http://apache2buddy.pl/ | perl

apache optimizasyonu

Modüller;

Apache, Apache 2.4 işletim sisteminde varsa, ayarlarınızı yönetmek için iki Çok İşleme Modülü sunmaktadır.

Her modül öncelikle sorguları işledikleri açılardan farklı olan alt süreçler oluşturur. Apache ayarları yapılırken en önemli unsur modülleri doğru derlemektir.

Prefork
Prefork modülü başlatmada bir dizi alt süreç oluşturur, her basit işlem yalnızca bir sorgu işlemektedir. Bu işlemler tek seferde bir sorgu ile uğraştığından, çok fazla eşzamanlı sorgu olması durumunda istek hızını düşürür. Bu gerçekleşirse, bazı isteklerin esasen üzerinde çalışılması için beklemek zorunda kalmaları gerekir. Bunun üstesinden gelmek için, oluşturulan alt süreçlerin sayısını artırın, ancak bunun kullanılan RAM miktarını arttırmadığına dikkat edin. Prefork, en güvenli modüldür ve iş parçacıklarının güvenliği olmayan modları kullanırken kullanılmalıdır.Prefork hem stabilize hemde apache performans optimizasyonu için en uygun MPM’dir.

Worker
Worker modülünün alt süreçleri işlem başına birçok iş parçacığı üretir; her iş parçacığı yeni isteklere başlamaya hazırdır. Bu, daha fazla eşzamanlı istek gelmesini sağlar ve sunucu RAM kullanımı daha azdır. Genel olarak, worker modülü daha yüksek performans sunar, ancak prefork’tan daha az güvenlidir ve işlem parçacığına dayanıklı olmayan modüller ile kullanılamaz.

Event

Event modülü sadece Apache 2.4’de mevcuttur ve çalışan MPM’yi temel alır. İşçi gibi, istek tamamlandıktan sonra basit iş parçacıklarına aktarılan KeepAlive bağlantılarına ayrılmış bir işlem parçacığıyla birlikte alt işlem başına birden çok işlem parçacığı oluşturur. Bu, birden çok eşzamanlı bağlantı için, özellikle aynı anda hepsi etkin olmayan ancak zaman zaman gelen istekte bulunanlar için iyidir. Event MPM, SSL bağlantıları durumunda çalışan bağlantılar içinde aynı işlevi görür.

Kaynak Kullanım ve Konfigürasyon Ayarları

MPM’nizi seçtikten sonra yapılandırmadaki değerleri değiştirmeniz gerekecektir. Bu ayarlar, Debian / Ubuntu’daki /etc/apache2/apache2.conf dosyasında ve CentOS / Fedora’daki /etc/httpd/conf/httpd.conf dosyasında bulunur. MPM ayarları aşağıdaki gibidir:

<IfModule mpm_prefork_module>
	StartServers          4
	MinSpareServers       20
	MaxSpareServers      40
	MaxClients           200
	MaxRequestsPerChild  4500
</IfModule>

Diğer MPM’ler için öğesini sırasıyla worker ve event için veya ile değiştirin.

Apache sunucunuzu yeniden yapılandırmanın bir sonraki adımında yukarıdaki ayarlar değiştiriliyor. Bunu yapmak için, her bir değerin ne yaptığını ve en iyi nasıl değiştirileceğini bilmeniz gerekir.

Yine yapılandırma değişiklikleri yapmanın en iyi yolu artımlı değişiklikler yapmak ve ardından sonuçları izlemektir.

Not : Apache yapılandırmasını değiştirdikten sonra, hizmeti Debian / Ubuntu’da service apache restart ile veya CentOS / Fedora’da /bin/systemctl restart httpd.service ( service httpd restart ) komutlarını kullanarak hizmeti yeniden başlatın.

StartServers
StartServers değeri başlangıçta yaratılan alt işlemlerin sayısını ve yüke nekadar bağlı olduğunu, dinamik olarak kontrol edildiğini gösterir. Sunucunuz sık sık yeniden başlatılmadığı sürece veya yeniden başlatma üzerine çok sayıda istek içeriyorsa, bu numarayı değiştirmeye gerek yoktur.

MinSpareServers
Boşta olan kaynakların minimum sayısını ayarlar. MinSpareServer değerinden daha az işlem varsa, Apache 2.2 veya daha düşük sürede saniyede bir oranında daha fazla süreç oluşturulur. Apache 2.4 ile bu oran 1’den başlayarak katlanarak artar ve saniyede 32 değere dönüşür. Bu değerin yararı, bir istek geldiğinde boşta olan bir iş parçacığı alabilmesidir; Bir sorgu olmazsa, Apache’nin yeni bir sorguyu spawn edip kaynakları alması ve isteğin geçmesi için gerekli süre artımı gerekecektir. Unutmayın, çok fazla boşta kalan işlemler sunucu üzerinde olumsuz bir etki yaratacaktır.

MaxSpareServers
Boşta olan alt süreçlerin maksimum sayısını ayarlar. Bu sayıdan daha fazla boşta işlem varsa, bunlar sonlandırılır. Web siteniz son derece meşgul olmadığı sürece, boşta olan işlemler bile kaynakları tükettiği için bu sayı çok yüksek ayarlanmamalıdır.

MaxClients
Eş zamanlı olarak sunulabilecek maksimum talep miktarı, herhangi bir sayı sınırın üstünde olacak şekilde sıraya alınır. Bu çok düşük olarak belirlenirse, sıraya gönderilen bağlantılar sonunda zaman aşımına uğrar; Ancak, çok yüksek olarak ayarlanırsa, belleğin aşırı kullanılmasına neden olur. Bu değer 256’dan fazla artarsa, ServerLimit değeri de artırılmalıdır.

Bunun için en iyi değeri hesaplamanın bir yolu, her Apache sürecinin kullandığı RAM miktarını mevcut RAM miktarıyla bölmek ve diğer işlemler için bir miktar yer bırakmaktır. Bu değerleri  belirlemeye yardımcı olması için ApacheBuddy’yi kullanın.

Her bir Apache sürecinin kullandığı RAM’ı belirlemek için Debian veya Ubuntu sistemlerinde httpd’yi aşağıdaki komut ile izleyin;

ps -ylC httpd --sort:rss

Kilobyte için numarayı kb cinsinden bölün.

Bellek kullanımı hakkında bilgi almak için:

free -m

Apache’nin kullandığı kaynakları tam olarak görmek için top komutunu kullanın.

MaxRequestsPerChild
Bu, bir sunucunun ömrü boyunca işlediği isteklerin sayısını sınırlar. Sınır vurulduğunda, sunucu cevap vermeyi bırakır. 0 olarak ayarlanırsa, sunucular hiçbir zaman sona ermeyecek şekilde ayarlanır. Bunun öngörülen değeri bellek sızıntısını önlemek için birkaç bindir. Bunu çok düşük ayarlamanın, sistemi yavaşlatabileceğine dikkat edin, çünkü yeni işlemler oluşturmak kaynakların yeterli olmasına bağlıdır.

ServerLimit
MaxClients değerini 256’nın üzerine çıkarmaya ihtiyacınız varsa, ServerLimit değerinizi eşleşecek şekilde artırın. Bunu yapmak için, ServerLimit satırını MPM kodunuza ekleyin ve değeri değiştirin:

ServerLimit          256

KeepAlive
Açık olarak ayarlandığında KeepAlive yönergesi, aynı TCP bağlantısından gelen çoklu isteklere izin verir. KeepAlive bağlantısı kullanıldığında, MaxRequestsPerChild yönergesine karşı yalnızca bir istek olarak varsayılır. Bu değer, MPM’nin dışında tutulur, ancak MPM seçeneklerinize yakından bağlı olabilir.

Daha Fazla Bilgi
Bu konuyla ilgili ek bilgiler için aşağıdaki kaynaklara danışmak isteyebilirsiniz. İşlemlerimiz en stabil ve genel olan ayarları içermektedir. Kaynaklarınızdan emin olmadan yapacağınız yanlış işlemler için aşağıdaki kaynaklar üzerinden bilgi edinebilirsiniz;

 Bize Sor  

 Hostazor Destek 

 Telefon Destek

 

1 Yorum

Bir Cevap Yazın

Yazar ; hostazor

Facebook Sayfamız

Bizi Twitter’da takip et

%d blogcu bunu beğendi: