Upload
braith
View
38
Download
2
Embed Size (px)
DESCRIPTION
APACHE, PHP VE LINUX İLE MAKSİMUM PERFORMANS. Burak DAYIOĞLU http://www.dayioglu.net [email protected]. Daha Yüksek Performans. Amaç: Daha fazla yatırım yapmadan aynı altyapıyı daha etkin kullanmak - PowerPoint PPT Presentation
Citation preview
APACHE, PHP VE LINUXAPACHE, PHP VE LINUXİLE MAKSİMUM İLE MAKSİMUM PERFORMANSPERFORMANS
Burak DAYIOĞLUBurak DAYIOĞLUhttp://www.dayioglu.nethttp://www.dayioglu.net
[email protected]@metu.edu.tr
2
Daha Yüksek PerformansDaha Yüksek PerformansAmaç: Daha fazla Amaç: Daha fazla yatırımyatırım yapmadan yapmadan aynı altyapıyı daha etkin kullanmakaynı altyapıyı daha etkin kullanmak
Beklenti: Web üzerinden çok yoğun Beklenti: Web üzerinden çok yoğun kullanılacak uygulamanın minimal kullanılacak uygulamanın minimal sürede gerçekleştirilmesi ve hizmete sürede gerçekleştirilmesi ve hizmete alınmasıalınması
Apache ve PHP en uygun ikiliApache ve PHP en uygun ikili
Linux, x86 mimarisi üzerinde Oracle Linux, x86 mimarisi üzerinde Oracle çalışan UNIX’lerden birisiçalışan UNIX’lerden birisi
3
Çekirdek Ayarları Çekirdek Ayarları DeğişikliğiDeğişikliği
Çekirdeğin çalışma zamanında ayarlarını Çekirdeğin çalışma zamanında ayarlarını değiştirmek mümkündeğiştirmek mümkün
İki farklı yöntemİki farklı yöntem echo 1 > /proc/sys/net/ipv4/ip_forwardecho 1 > /proc/sys/net/ipv4/ip_forward sysctl -w net.ipv4.ip_forward=1sysctl -w net.ipv4.ip_forward=1
Her iki durumda da değişiklikler geçici; iki Her iki durumda da değişiklikler geçici; iki alternatif yöntem ile kalıcı hale getirilebilir:alternatif yöntem ile kalıcı hale getirilebilir: Değişikliklerin açılış betiklerine yerleştirilmesiDeğişikliklerin açılış betiklerine yerleştirilmesi Uygun satırların /etc/sysctl.conf ’a eklenmesiUygun satırların /etc/sysctl.conf ’a eklenmesi
4
Dosya Sistemi Ayarları - Dosya Sistemi Ayarları - 1 -1 -
Son erişim zamanı bilgisinin (Son erişim zamanı bilgisinin (atimeatime) ) güncellenmesini iptal edingüncellenmesini iptal edin /etc/fstab dosyasında ilgili dosya sistemi /etc/fstab dosyasında ilgili dosya sistemi
için:için:/dev/sda1 /webfiles ext2 /dev/sda1 /webfiles ext2 noatimenoatime 1 2 1 2
Çekirdeğin dosya sistemi için tampon Çekirdeğin dosya sistemi için tampon bellek yönetim stratejisini değiştirinbellek yönetim stratejisini değiştirinsysctl -w vm.bdflush="100 5000 640 2560 sysctl -w vm.bdflush="100 5000 640 2560 150 30000 5000 1884 2“150 30000 5000 1884 2“
/doc/sysctl/vm.txt dosyasında açıklamaları /doc/sysctl/vm.txt dosyasında açıklamaları mevcutmevcut
5
Dosya Sistemi Ayarları - Dosya Sistemi Ayarları - 2 -2 -
Dosya sistemi belirteçlerinin ve inode Dosya sistemi belirteçlerinin ve inode sayısının limitlerini arttırın:sayısının limitlerini arttırın:sysctl –w fs.inode-max=“128000”sysctl –w fs.inode-max=“128000”
sysctl –w fs.file-max=“64000”sysctl –w fs.file-max=“64000”
ulimit –n 64000ulimit –n 64000
Yeni nesil dosya sistemlerinden birisini Yeni nesil dosya sistemlerinden birisini kullanın (reiserfs, ext3 vb.)kullanın (reiserfs, ext3 vb.)
6
Ağ Sürücüsü AyarlarıAğ Sürücüsü AyarlarıYerel TCP bağlantı noktası aralığını Yerel TCP bağlantı noktası aralığını genişletin:genişletin:sysctl –w sysctl –w net.ipv4.ip_local_port_range=“1024 net.ipv4.ip_local_port_range=“1024 65000”65000”
Ağ sürücüsünün işini hafifletmek için Ağ sürücüsünün işini hafifletmek için “TCP Timestamping”’i iptal edin:“TCP Timestamping”’i iptal edin:sysctl –w net.ipv4.tcp_timestamps=0sysctl –w net.ipv4.tcp_timestamps=0
7
Ağ Sürücüsü Ayarları - 2 Ağ Sürücüsü Ayarları - 2 --
Hizmet almak üzere bağlantı Hizmet almak üzere bağlantı kuyruğunda bekleyebilecek istemci kuyruğunda bekleyebilecek istemci sayısını arttırınsayısını arttırınsysctl –w net.ipv4.tcp_max_syn_backlog = sysctl –w net.ipv4.tcp_max_syn_backlog = 256256
TCP Açık iletişim zaman-aşımını düşürünTCP Açık iletişim zaman-aşımını düşürünsysctl –w net.ipv4.tcp_keepalive_time=30sysctl –w net.ipv4.tcp_keepalive_time=30
İletişim sonlandırma zaman aşımını İletişim sonlandırma zaman aşımını düşüründüşürünsysctl –w net.ipv4.tcp_fin_timeout = 30sysctl –w net.ipv4.tcp_fin_timeout = 30
8
Görev Yönetimi AyarlarıGörev Yönetimi AyarlarıBir kullanıcının aynı anda işletebileceği Bir kullanıcının aynı anda işletebileceği maksimum süreç sayısını arttırınmaksimum süreç sayısını arttırınulimit –u unlimitedulimit –u unlimited
İnteraktif kullanıcılar var ise süreç İnteraktif kullanıcılar var ise süreç sayısını rahatça ARTTIRAMAZSINIZ!sayısını rahatça ARTTIRAMAZSINIZ!while(1) fork();while(1) fork();
9
Güncel Çekirdek KullanımıGüncel Çekirdek KullanımıÇekirdek 2.2.x yerine 2.4.x kullanımı Çekirdek 2.2.x yerine 2.4.x kullanımı web hizmet performansını ciddi web hizmet performansını ciddi biçimde arttırdıbiçimde arttırdı Kesilme temelli G/Ç (Interrupt-driven I/O)Kesilme temelli G/Ç (Interrupt-driven I/O) Yoklama temelli G/Ç (Poll-driven I/O)Yoklama temelli G/Ç (Poll-driven I/O) Hibrid G/ÇHibrid G/Ç
10
Apache’nin DerlenmesiApache’nin DerlenmesiModModülleri dikkatle seçinülleri dikkatle seçin Derlenmiş modüllerin bir listesini Derlenmiş modüllerin bir listesini httpd –lhttpd –l
ile görebilirsinizile görebilirsiniz Gereksiz tüm modülleri iptal edinGereksiz tüm modülleri iptal edin Mmap_static modülunu ekleyinMmap_static modülunu ekleyin PHP’yi modül olarak ekleyinPHP’yi modül olarak ekleyin
Gereksiz php bileşenlerini devre dışı bırakınGereksiz php bileşenlerini devre dışı bırakın Tüm Apache modüllerini statik olarak derleyinTüm Apache modüllerini statik olarak derleyin
Maksimum paralel istem sayısını arttırınMaksimum paralel istem sayısını arttırın src/include/httpd.hsrc/include/httpd.h dosyasını açıp dosyasını açıp HARD_SERVER_LIMITHARD_SERVER_LIMIT değişkeninin değerini değişkeninin değerini4096’ya çıkartın4096’ya çıkartın
11
Apache Görev YönetimiApache Görev YönetimiMaxClients XXXMaxClients XXX
StartServers XXXStartServers XXX
MinSpareServers XXXMinSpareServers XXX
MaxSpareServers XXXMaxSpareServers XXX
MaxRequestsPerChild 0MaxRequestsPerChild 0
12
Apache AyarlarıApache AyarlarıFollowSymLinks onFollowSymLinks on
AllowOverride noneAllowOverride none
HostNameLookups offHostNameLookups off
KeepAlive onKeepAlive on
KeepAliveTimeoutKeepAliveTimeout
MaxKeepAliveRequestsMaxKeepAliveRequests
13
Resimleri Bellekte Resimleri Bellekte BekletmeBekletme
MMapFile ile ön-bellek kullanımı disk MMapFile ile ön-bellek kullanımı disk erişimini ciddi biçimde azaltabilirerişimini ciddi biçimde azaltabilir MMAPFile MMAPFile
/usr/local/apache/htdocs/img/a1.jpg/usr/local/apache/htdocs/img/a1.jpg
14
PHP AyarlarıPHP AyarlarıPHP’yi statik Apache modülü olarak PHP’yi statik Apache modülü olarak derleyinderleyin
AyarlardanAyarlardan max_execution_time = 30max_execution_time = 30 memory_limit = 2097152 (2MB)memory_limit = 2097152 (2MB) display_errors = Offdisplay_errors = Off log_errors = Offlog_errors = Off track_errors = Offtrack_errors = Off register_argc_argv = Offregister_argc_argv = Off
15
PHP ile ProgramlamaPHP ile ProgramlamaEcho, print ve PHP koduna HTML Echo, print ve PHP koduna HTML karıştırmakarıştırma Aralarında performans bakımından önemli Aralarında performans bakımından önemli
bir fark yokturbir fark yoktur
Kalıcı (ing. persistent) veritabanı Kalıcı (ing. persistent) veritabanı bağlantılarıbağlantıları
16
PHP YorumlayıcısıPHP YorumlayıcısıPHP yorumlayıcısının çalışma biçimiPHP yorumlayıcısının çalışma biçimi <?<? $x=5; $x=5; echo $x; echo $x; exit; exit; /* 100 satır daha komut */ /* 100 satır daha komut */?>?>
Hiç çağrılmamasına rağmen, 100 Hiç çağrılmamasına rağmen, 100 satırın silinmesi çalışma hızını ciddi satırın silinmesi çalışma hızını ciddi biçimde arttırırbiçimde arttırır
APACHE, PHP VE LINUXAPACHE, PHP VE LINUXİLE MAKSİMUM İLE MAKSİMUM PERFORMANSPERFORMANS
Burak DAYIOĞLUBurak DAYIOĞLUhttp://www.dayioglu.nethttp://www.dayioglu.net
[email protected]@metu.edu.tr