APACHE, PHP VE LINUX İLE MAKSİMUM PERFORMANS

Slides:



Advertisements
Benzer bir sunumlar
Türkiye Linux Kullanıcı Grubu NFS & NIS Kerem ERZURUMLU Akademik Bilişim 2001.
Advertisements

1. Linux ve Özgür Yazılım Şenliği
LİNUX DİZİN YAPISI Öğr. Gör. Mustafa SARIÖZ
WEB SUNUCU AYARLARI.
Ahmet DERVİŞ Ahmet DERVİŞ LKD Seminerleri Linux Kullanıcıları Derneği
GENEL OLARAK Ana kart Nedir? Ana kartın Yapısı
Temel Linux Sunucusu Kurulumu
PHP VE MYSQL.
IIS 6.0. Giriş  Geçtiğimiz yıllarda, Microsoft güvenlik açıkları nedeniyle IIS 4/5 üstünden bir çok saldırıya uğradı.  Bu sebepten Microsoft’un geliştirdiği.
TEMEL AĞ TANIMLARI.
FreeRADIUS ile Kimlik Denetimi
Sendmail Kerem ERZURUMLU Akademik Bilişim 2000.
İnternet Sitemizi Açarız! Çok Heyecanlıyız !. Fakat Ziyaretçi Gelmez..
Bilgisayar Ağlarına Giriş
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
Mysql, PhpMyAdmin, PHP, Dinamik Web Sayfası, PHPNuke Kullanımı
HTTP’yi (istemci tarafı) kendi kendinize deneyin
İNTERNET VE İLETİŞİM.
BİR WORM’UN ANATOMİSİ Gökhan AKIN Asım GÜNEŞ
Sendmail Kerem ERZURUMLU Akademik Bilişim 2000.
Temel Linux Sunucusu Kurulumu
Bilgisayar Ağlarına Giriş
Örnek Kampüs Uygulamaları ODTÜ Ulaknet Sistem Yönetim Konferansı - Güvenlik.
U Y A R I Takibeden slaytlarda anlatılan internet explorer/proxy ayarları yapıldıktan sonra ancak KHÜ Kütüphanesi tarafından izin verilen web sayfalarına.
Çevre ve Orman Bakanlığı Bilgi İşlem Dairesi Başkanlığı
DOVECOT İLE IMAP VE POP3 SERVER KURULUMU
PHP İle GÜVENLİ KODLAMA
Üsküdar Halk Eğitim Merkezi Eczane Çalışanlarının Eğitimi
İŞLETİM SİSTEMLERİ KONTROL: PROF.DR.ASAF VAROL DÖNE KARAOĞLAN BİLGİSAYAR SİSTEMLERİ Bilgisayar Öğretmenliği (Gece) - 4.
Bora GÜRSEL CBÜ BAUM Proje Yöneticisi
PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk.
Dumlupınar Üniversitesi
PHP 4’ün Yenilikleri VIII. “Türkiye’de İnternet” Konferansı İstanbul, Aralık 2002 Hidayet Doğan.
İnternet Programcılığı II
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
İnternet Programcılığı II
HALK KÜTÜPHANELERİ SOSYAL AĞLARDA HALK KÜTÜPHANELERİNE ERİŞİM.
WEB SUNUCU KURULUMU.
İnternet Teknolojisi Temel Kavramlar
HAZİRAN ASP ACTIVE SERVER PAGES Demet AMİNCİ Selçuk YUVARLAK Yusuf ŞENEL Endüstri Mühendisliğinde Bilgisayar Uygulamaları Dersi Projesi, 2004.
Paralel Programlamaya Giriş
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
Bilgisayara Giriş Uzm. Murat YAZICI.
Güvenli ve Pratik Web’de çalışma saatleri için;
İnternet Programcılığı II
BİLGİSAYAR AĞLARINA GİRİŞ
Bilgisayar Ağlarına Giriş. Tarihsel Gelişim Main- frame OS yoktu Batch Systems (Toplu İşlem) Birden fazla işin arka arkaya çalıştırılması.
METU-CC ODTÜ AntiVirüs Sistemi ODTÜ Bilgi İşlem Daire Başkanlığı İbrahim ÇALIŞIR 3 Ekim 2003.
BİLGİSAYAR AĞLARINA GİRİŞ
Hayrettin Bucak Sistem yöneticisi TÜBİTAK ULAKBİM Ekim 2003.
İnternet Teknolojisi Temel Kavramlar
Paralel Programlamaya Giriş
Paralel Programlamaya Giriş 2
Paralel Programlamaya Giriş
CensorNet Linux Internet Güvenlik Duvarı ve Kayıt Tutma Semineri
BTÖ 306 Bilgisayar Ağlarına Giriş Dr. Şirin Karadeniz Çelebi Uluyol.
Genel Bakış IEU Web Sitesi Genel Yapısı İDARİ YAPI VE AKADEMİK YAPI İÇİN YAKLAŞIMLAR... YÖNETİM SİSTEMİ ORGANİZASYON EK: SPAW EDİTÖR.
İKMAP İnternet 1 Ders Notu
İşletim Sistemleri Operation Systems Fon müziği.
WİNDOWS 2003 SERVER KURULUMU ENTERPRİSE EDİTİON. WİN – SET Abidin BAŞ – Cihad KAYALI Bu bölümde hangi sürümü yükleyeceğimizi belirliyoruz.
SUNUM KONU BAŞLIKLARI->
Çomar neyi çözecek? ● Ayarlama arayüzleri görev tabanlı olmalı ● Gündelik işler için komut satırı gerekmemeli ● Belgeleri yalnızca programcılar okuyor.
/etc/comar/model.xml /var/log/comar.log /var/run/comar.socket /var/db/comar/ ÇOMAR Sistem Modeli Kayıt Kütüğü Veritabanı Unix Soket Çomar Sistem Yerleşimi.
Java ve Linux Bora Güngören Portakal Teknoloji Akademik Bilişim
SUNUCU İŞLETİM SİSTEMLERİ
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
İNTERNET PROGRAMCILIĞI 2
Açılış yoklama İşletim Sistemleri. Bilgisayarlarda işletim sistemi, donanımın doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama.
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

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 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

Ç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

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 union bdflush_param{ struct { int nfract; /* Percentage of buffer cache dirty to activate bdflush */ int ndirty; /* Maximum number of dirty blocks to write out per wake-cycle */ int nrefill; /* Number of clean buffers to try to obtain each time we call refill */ int nref_dirt; /* Dirty buffer threshold for activating bdflush when trying to refill buffers. */ int dummy1; /* unused */ int age_buffer; /* Time for normal buffer to age before we flush it */ int age_super; /* Time for superblock to age before we flush it */ int dummy2; /* unused */ int dummy3; /* unused */ } b_un; unsigned int data[N_PARAM]; } bdf_prm = {{40, 500, 64, 256, 15, 30*HZ, 5*HZ, 1884, 2}}; The first parameter governs the maximum number of dirty buffers in the buffer cache. Dirty means that the contents of the buffer still have to be written to disk (as opposed to a clean buffer, which can just be forgotten about). Setting this to a high value means that Linux can delay disk writes for a long time, but it also means that it will have to do a lot of I/O at once when memory becomes short. A low value will spread out disk I/O more evenly. The second parameter (ndirty) gives the maximum number of dirty buffers that bdflush can write to the disk in one time. A high value will mean delayed, bursty I/O, while a small value can lead to memory shortage when bdflush isn't woken up often enough... The third parameter (nrefill) is the number of buffers that bdflush will add to the list of free buffers when refill_freelist() is called. It is necessary to allocate free buffers beforehand, since the buffers often are of a different size than memory pages and some bookkeeping needs to be done beforehand. The higher the number, the more memory will be wasted and the less often refill_freelist() will need to run. When refill_freelist() comes across more than nref_dirt dirty buffers, it will wake up bdflush. Finally, the age_buffer and age_super parameters govern the maximum time Linux waits before writing out a dirty buffer to disk. The value is expressed in jiffies (clockticks), the number of jiffies per second is 100, except on Alpha machines (1024). Age_buffer is the maximum age for data blocks, while age_super is for filesystem metadata.

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.) Maximum number of open file descriptors

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 Timestamp’ler PAWS (protect against wrapped sequence numbers) ve RTT (Round trip time) hesaplama için kullanılırlar.

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

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(); The maximum number of processes available to a single user

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/Ç

Apache’nin Derlenmesi Modülleri dikkatle seçin Derlenmiş modüllerin bir listesini httpd –l ile 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ğerini 4096’ya çıkartın

Apache Görev Yönetimi MaxClients XXX StartServers XXX MinSpareServers XXX MaxSpareServers XXX MaxRequestsPerChild 0 MaxClients aynı anda hizmet verilecek maksimum istemci sayısını belirler. StartServers başlangıçta kaç Apache sürecinin çalıştırılacağını belirler MinSpareServers herhangi bir anda boş bekleyen minimum istemci sayısını belirler. MaxSpareServers herhangi bir anda boş bekleyen maksimum istemci sayısını belirler.

Apache Ayarları FollowSymLinks on AllowOverride none HostNameLookups off KeepAlive on KeepAliveTimeout MaxKeepAliveRequests “AllowOverride Off” her dizinde .htaccess aranmasını engeller. KeepAliveTimeout istem gelmeden keep-alive’ı kapatmadan önce ne kadar bekleneceği. MaxKeepAliveRequest, bir keep-alive süresince işlenebilecek maksimum isteği belirler.

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

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

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ı Require mutlaka yükler, include gerekli ise yükler

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

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