1 / 17

APACHE, PHP VE LINUX İLE MAKSİMUM PERFORMANS

APACHE, PHP VE LINUX İLE MAKSİMUM PERFORMANS. Burak DAYIOĞLU http://www.dayioglu.net dayioglu@metu.edu.tr. Daha Yüksek Performans. Amaç: Daha fazla yatırım yapmadan aynı altyapıyı daha etkin kullanmak

machiko-rin
Download Presentation

APACHE, PHP VE LINUX İLE MAKSİMUM PERFORMANS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. APACHE, PHP VE LINUXİLE MAKSİMUM PERFORMANS Burak DAYIOĞLUhttp://www.dayioglu.net dayioglu@metu.edu.tr

  2. Daha Yüksek Performans • Amaç: Daha fazla yatırım yapmadan aynı altyapıyı daha etkin kullanmak • Beklenti: Web üzerinden çok yoğun kullanılacak uygulamanın minimal sürede gerçekleştirilmesi ve hizmete alınması • Apache ve PHP en uygun ikili • Linux, x86 mimarisi üzerinde Oracle çalışan UNIX’lerden birisi

  3. Çekirdek Ayarları Değişikliği • Çekirdeğin çalışma zamanında ayarlarını değiştirmek mümkün • İki farklı yöntem • echo 1 > /proc/sys/net/ipv4/ip_forward • sysctl -w net.ipv4.ip_forward=1 • Her iki durumda da değişiklikler geçici; iki alternatif yöntem ile kalıcı hale getirilebilir: • Değişikliklerin açılış betiklerine yerleştirilmesi • Uygun satırların /etc/sysctl.conf ’a eklenmesi

  4. Dosya Sistemi Ayarları - 1 - • Son erişim zamanı bilgisinin (atime) güncellenmesini iptal edin • /etc/fstab dosyasında ilgili dosya sistemi için:/dev/sda1 /webfiles ext2 noatime 1 2 • Çekirdeğin dosya sistemi için tampon bellek yönetim stratejisini değiştirin sysctl -w vm.bdflush="100 5000 640 2560 150 30000 5000 1884 2“ /doc/sysctl/vm.txt dosyasında açıklamaları mevcut

  5. Dosya Sistemi Ayarları - 2 - • Dosya sistemi belirteçlerinin ve inode sayısının limitlerini arttırın: sysctl –w fs.inode-max=“128000” sysctl –w fs.file-max=“64000” ulimit –n 64000 • Yeni nesil dosya sistemlerinden birisini kullanın (reiserfs, ext3 vb.)

  6. Ağ Sürücüsü Ayarları • Yerel TCP bağlantı noktası aralığını genişletin: sysctl –w net.ipv4.ip_local_port_range=“1024 65000” • Ağ sürücüsünün işini hafifletmek için “TCP Timestamping”’i iptal edin: sysctl –w net.ipv4.tcp_timestamps=0

  7. Ağ Sürücüsü Ayarları - 2 - • Hizmet almak üzere bağlantı kuyruğunda bekleyebilecek istemci sayısını arttırın sysctl –w net.ipv4.tcp_max_syn_backlog = 256 • TCP Açık iletişim zaman-aşımını düşürün sysctl –w net.ipv4.tcp_keepalive_time=30 • İletişim sonlandırma zaman aşımını düşürün sysctl –w net.ipv4.tcp_fin_timeout = 30

  8. Görev Yönetimi Ayarları • Bir kullanıcının aynı anda işletebileceği maksimum süreç sayısını arttırın ulimit –u unlimited • İnteraktif kullanıcılar var ise süreç sayısını rahatça ARTTIRAMAZSINIZ! while(1) fork();

  9. Güncel Çekirdek Kullanımı • Çekirdek 2.2.x yerine 2.4.x kullanımı web hizmet performansını ciddi biçimde arttırdı • Kesilme temelli G/Ç (Interrupt-driven I/O) • Yoklama temelli G/Ç (Poll-driven I/O) • Hibrid G/Ç

  10. Apache’nin Derlenmesi • Modülleri dikkatle seçin • Derlenmiş modüllerin bir listesini httpd –lile görebilirsiniz • Gereksiz tüm modülleri iptal edin • Mmap_static modülunu ekleyin • PHP’yi modül olarak ekleyin • Gereksiz php bileşenlerini devre dışı bırakın • Tüm Apache modüllerini statik olarak derleyin • Maksimum paralel istem sayısını arttırın • src/include/httpd.h dosyasını açıp HARD_SERVER_LIMIT değişkeninin değerini4096’ya çıkartın

  11. Apache Görev Yönetimi • MaxClients XXX • StartServers XXX • MinSpareServers XXX • MaxSpareServers XXX • MaxRequestsPerChild 0

  12. Apache Ayarları • FollowSymLinks on • AllowOverride none • HostNameLookups off • KeepAlive on • KeepAliveTimeout • MaxKeepAliveRequests

  13. Resimleri Bellekte Bekletme • MMapFile ile ön-bellek kullanımı disk erişimini ciddi biçimde azaltabilir • MMAPFile /usr/local/apache/htdocs/img/a1.jpg

  14. PHP Ayarları • PHP’yi statik Apache modülü olarak derleyin • Ayarlardan • max_execution_time = 30 • memory_limit = 2097152 (2MB) • display_errors = Off • log_errors = Off • track_errors = Off • register_argc_argv = Off

  15. PHP ile Programlama • Echo, print ve PHP koduna HTML karıştırma • Aralarında performans bakımından önemli bir fark yoktur • Kalıcı (ing. persistent) veritabanı bağlantıları

  16. PHP Yorumlayıcısı • PHP yorumlayıcısının çalışma biçimi <? $x=5; echo $x; exit; /* 100 satır daha komut */?> • Hiç çağrılmamasına rağmen, 100 satırın silinmesi çalışma hızını ciddi biçimde arttırır

  17. APACHE, PHP VE LINUXİLE MAKSİMUM PERFORMANS Burak DAYIOĞLUhttp://www.dayioglu.net dayioglu@metu.edu.tr

More Related