PHP       ölçeklenebİlİrlİk          Ve Performans      Mustafa İlerİ EkİM12 - Özgür web günlerİ
Yatay ve dİkey ÖlçeklemeTemel performans problemlerİYük DENGELEYİCİLER ( load balancer )Web hızlandırıcılarPHP hızlandırıc...
Yatay ve dİkey ölçeklemeÖlçeklenebİlİrlİkBİr sİSTEMİN artan bİLGİ İşlem hacmİNİN kolayca yönetİlebİlme ve genİşletİlebİlme...
YATAY VE DİKEY ÖLÇEKLEME yatay ÖLÇEKLENEBİLİRLİK                           SİSTEMİN CEVAP VERME SÜRESİ DİKEY ÖLÇEKLENEBİLİ...
PERFORMANS VE ÖLÇEKLENDİRME                    ÖlçeklenebİLİRLİK != PERFORMANSPERFORMANS PROBLEMİ: BİR SİSTEM, TEK KULLANI...
Temel performans problemlerİGereksİz network trafİğİDİsk İşlemlerİVerİtabanına gereksİz yapılaN sorgularSİstemde süreklİ ç...
Yük DENGELEYİCİLER  YÜK DENGELEME  BİR NETWORK TERMİNOLOJİSİDİR. BASİT OLARAK İŞ YÜKÜNÜ BİRDEN FAZLA BİLGİSAYARA DÜZGÜN  O...
Yük dengeleyİCİLER
WEB HIZLANDIRICILAR WEB HIZLANDIRICILAR WEB SİTELERİNE ERİŞİM ZAMANINI AZALTAN, DOĞAL OLARAK KAYNAK TÜKETİMİNİ DİREKt ETKİ...
PHP hizlandiricilar                             PHP HIZLANDIRICILAR:PHP İLE YAZILMIŞ UYGULAMALARIN PERFORMANSINI İYİLEŞTİR...
PHP hizlandiricilar
PHP hizlandiricilar
APC                                                           ALTERNATIVE PHP CACHINGAPC NEDİR ?“APC, alternatİf PHP önbel...
APC                                                 ALTERNATIVE PHP CACHING               ab -c 20 -n 1000 http://blog.mus...
Önbellekleme sİstemlerİ                                    ÖNBELLEKLEME İSTENİLEN BİR VERİNİN GELECEKTEKİ OLASI İSTEKLERDE...
Önbellekleme sİstemlerİ
ÖNBELLEKLEME SİSTEMLERİ “There are only two hard things in Computer Science:        cache invalidation and naming things”....
ÖNBELLEKLEME SİSTEMLERİKİmlİk doğrulamaÖNBELLEKLEME servİsLERİNDE kİmlİk DOĞRULAMA OLMAYABİLİR ( BKZ. MEMCACHED ).Verİ kon...
memcacheD                                                                                                  11211MemcacheD ...
arama motorları                                   ARAMA MOTORLARI  BİR BİLGİSAYAR SİSTEMİ ÜZERİNDE DEPOLANAN BİLGİLERİ BUL...
arama motorları
SPHINX                                                                   Indexer, searchdSPHINXAÇIK KAYNAK OLARAK C++ İLE ...
SPHINX                                                         Indexer, searchdKONFİGÜRASYON  SPHINX KONFİGÜRASYON DOSYASI...
SPHINX                                                        Indexer, searchdSourcesource geo{        type               ...
SPHINX                                           Indexer, searchdINDEX index geo {         source         =   geo         ...
SPHINX                                           Indexer, searchdSEARCHDsearchd{    listen              =   127.0.0.1    P...
SPHINX                       Indexer, searchdİNDEKSLEME VE ARAMA İŞLEMİ
MESAJ KUYRUK SİSTEMLERİ                                        MESAJ KUYRUK SİSTEMLERİ  ASENKRON İŞLEMLERİ SIRAYA KOYARAK ...
MESAJ KUYRUK SİSTEMLERİ
MESAJ KUYRUK SİSTEMLERİANTI-PATTERNVERİTABANININ KUYRUK YAPiSI OLARAK KULLANILMASI BİR ANTIPATTERN DİR.NEDEN ?1. SİSTEMİN ...
Sorular ?
EMAIL:  mustafa.ileri@sonsuzdongu.comTWITTER:  https://twitter.com/mustafaileriLINKEDIN:                                  ...
Upcoming SlideShare
Loading in …5
×

Scalability performance on_php

2,887 views

Published on

PHP de olceklenebilirlik ve performans

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,887
On SlideShare
0
From Embeds
0
Number of Embeds
1,019
Actions
Shares
0
Downloads
47
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Scalability performance on_php

  1. 1. PHP ölçeklenebİlİrlİk Ve Performans Mustafa İlerİ EkİM12 - Özgür web günlerİ
  2. 2. Yatay ve dİkey ÖlçeklemeTemel performans problemlerİYük DENGELEYİCİLER ( load balancer )Web hızlandırıcılarPHP hızlandırıcılarÖnbellekleme Sİstemlerİarama motorlarıMESAJ KUYRUK SİSTEMLERİSORULAR
  3. 3. Yatay ve dİkey ölçeklemeÖlçeklenebİlİrlİkBİr sİSTEMİN artan bİLGİ İşlem hacmİNİN kolayca yönetİlebİlme ve genİşletİlebİlme yeteneğİdİr.DİKEY ÖLÇEKLENEBİLİRLİK YATAY ÖLÇEKLENEBİLİRLİK BİR SİSTEMİN İŞLEM HACMİNİ ARTTIRABİLMEKTEK BİR MAKİNE İÇİN KAYNAKLARI İÇİN TEK MAKİNEDEKİ YÜKÜ DÜZGÜN OLARAKARTTIRARAK SİSTEMİN İŞLEM HACMİNİ BİRDEN FAZLA MAKİNEYE VE DÜĞÜMEARTTIRABİLMEKTİR. YAYABİLMEKTİR.
  4. 4. YATAY VE DİKEY ÖLÇEKLEME yatay ÖLÇEKLENEBİLİRLİK SİSTEMİN CEVAP VERME SÜRESİ DİKEY ÖLÇEKLENEBİLİRLİK SİSTEM YÜKÜ
  5. 5. PERFORMANS VE ÖLÇEKLENDİRME ÖlçeklenebİLİRLİK != PERFORMANSPERFORMANS PROBLEMİ: BİR SİSTEM, TEK KULLANICI İLE YAVAŞ ÇALIŞIYORSABU BİR PERFORMANS PROBLEMİDİR.ÖLÇEKLENEBİLİRLİK PROBLEMİ: BİR SİSTEM, ÜZERİNDEKİ YÜK ARTTIĞIZAMAN YAVAŞ ÇALIŞIYORSA BU BİR ÖLÇEKLENEBİLİRLİK PROBLEMİDİR. ÖlçeklenebİLİRLİK > PERFORMANS TEMEL SORUN KAYNAK YÖNETİMİ
  6. 6. Temel performans problemlerİGereksİz network trafİğİDİsk İşlemlerİVerİtabanına gereksİz yapılaN sorgularSİstemde süreklİ çalışan scrİptlerKötü Kod
  7. 7. Yük DENGELEYİCİLER YÜK DENGELEME BİR NETWORK TERMİNOLOJİSİDİR. BASİT OLARAK İŞ YÜKÜNÜ BİRDEN FAZLA BİLGİSAYARA DÜZGÜN OLARAK PAYLAŞTIRMAKTIR. DONANIMSAL VEYA YAZILIMSAL OLARAK YAPILABİLİR. NEDEN ? DİKEY ÖLÇEKLEME BELİRLİ BİR YERDEN SONRA ÇOK SIKINTILI OLUR ( MALİYET VE PERFORMANS ) SİSTEMİN HATA TOLERANSINI ARTTIRMAK.http://en.wikipedia.org/wiki/Load_balancing_(computing)
  8. 8. Yük dengeleyİCİLER
  9. 9. WEB HIZLANDIRICILAR WEB HIZLANDIRICILAR WEB SİTELERİNE ERİŞİM ZAMANINI AZALTAN, DOĞAL OLARAK KAYNAK TÜKETİMİNİ DİREKt ETKİLEYEBİLEN SİSTEMLERDİR. SUNUCU SEVİYESİNDE BELLEKLEME YAPAR, DOSYALAR İÇİN SIKIŞTIRMA YAPAR... http://en.wikipedia.org/wiki/Web_accelerator NEDEN ? Alternatİfler I/O AZALTMAK VarnISH İŞLEMCİ YÜKÜNÜ AZALTMAK NGINX SQUID
  10. 10. PHP hizlandiricilar PHP HIZLANDIRICILAR:PHP İLE YAZILMIŞ UYGULAMALARIN PERFORMANSINI İYİLEŞTİRMEYİ AMAÇLAYAN PHP EKLENTİLERİDİR. ALTERNATİF PHP HIZLANDIRICILAR: Alternative PHP Cache (APC) ionCube PHP Accelerator Nusphere PhpExpress Zend Optimizer+ Turck MMCache eAccelerator XCache
  11. 11. PHP hizlandiricilar
  12. 12. PHP hizlandiricilar
  13. 13. APC ALTERNATIVE PHP CACHINGAPC NEDİR ?“APC, alternatİf PHP önbelleğİdİr. PHP betİklerİnİ derlemek veönbelleklemek İÇİn özgür, açık ve sağlam bİr çalışma ortamısağlamak adına tasarlandı.” http://www.belgeler.org/APC NİN AVANTAJLARIOpcode CacheÜcretsİzKod değİşİkLİğİ yok apc.stat=1 DOSYA DEĞİŞİKLİĞİNDE BELLEĞİ GÜNCELLE APC.SHM_SIZE=512 MB CİNSİNDEN BELLEKTE KULLANILACAK ALANAçık kaynakKolay Kurulum http://www.php.net/manual/tr/apc.configuration.php
  14. 14. APC ALTERNATIVE PHP CACHING ab -c 20 -n 1000 http://blog.mustafaileri.com/ APC NORMAL SANİYE BAŞINA İSTEK 13.61 8.39 REQUEST PER SECOND TOPLAM SÜRE 73.492 119.248 SANİYE
  15. 15. Önbellekleme sİstemlerİ ÖNBELLEKLEME İSTENİLEN BİR VERİNİN GELECEKTEKİ OLASI İSTEKLERDE DAHA HIZLI SERVİS EDİLEBİLMESİ AMACI İLE BELLEKTE TUTULMASIDIR. NEDEN ? ALTERNATİFLER DISK I/O AZALTMAK İÇİN MEMCACHED DB BOTTLENECK AZALTMAK HAZELCAST HIZ TERRACOTTA REDIS APC
  16. 16. Önbellekleme sİstemlerİ
  17. 17. ÖNBELLEKLEME SİSTEMLERİ “There are only two hard things in Computer Science: cache invalidation and naming things”. Phil Lewis Karlton
  18. 18. ÖNBELLEKLEME SİSTEMLERİKİmlİk doğrulamaÖNBELLEKLEME servİsLERİNDE kİmlİk DOĞRULAMA OLMAYABİLİR ( BKZ. MEMCACHED ).Verİ kontrolüBelleklenecek verİnİn kontrolü sağlanmalı,belleklenen değer İstenİldİğİ zaman yenİlenebİlmelİ.Depolama aracı olarak kullanırken dİkkat edıİlmelİÖNBELLEKLEME SİSTEMLERİNDE tutulan verİlerİn bİr belleklenme sÜresİ OLABİLİR,Bu süre sonunda verİler sİlİnEBİLİR.
  19. 19. memcacheD 11211MemcacheD nedİr ?MemcacheD, verİtabanı yükünü hafİfleterek, dİnamİk web uygulamalarınıN hızlandırılmasını amaçlayan, açık kaynakolarak gelİştİrİlen, dağıtık Mİmarİye destek veren bİr bellekleme sİstemİdİr. Alternatİfler Apc REDIS Membase HazelCast Memcachedb xcache
  20. 20. arama motorları ARAMA MOTORLARI BİR BİLGİSAYAR SİSTEMİ ÜZERİNDE DEPOLANAN BİLGİLERİ BULMAYA YARDIMCI OLMAK İÇİN TASARLANMIŞ SİSTEMLERDİR. TEMEL AMAÇ VERİTABANINI GEREKSİZ VE YÜKLÜ SORGULARDAN KURTARMAKTIR.NEDEN ? AlternatİflerÇÜNKÜ VERİTABANINDA ARAMa MALİYETLİ VE SORUNLU BİR İŞTİR. SOLR LUCENE SPHINX ELASTIC SEARCH
  21. 21. arama motorları
  22. 22. SPHINX Indexer, searchdSPHINXAÇIK KAYNAK OLARAK C++ İLE GELİŞTİRİLMİŞ BİR ARAMA MOTORUDUR.2001 yılında başlamış bİR PROJEDİR.KİMLER KULLANIYOR ?Netlog, Craıgslıst, MozILLA, DAILY MOTION, META CAFE, CEVREMDENEVAR :)
  23. 23. SPHINX Indexer, searchdKONFİGÜRASYON SPHINX KONFİGÜRASYON DOSYASI /etc/sphinxsearch/sphinxsearch.conf 4 FARKLI BÖLÜMDEN OLUŞUR. 1. source: VERİ KAYNAĞININ TANIMLANDIĞI BÖLÜM 2. index: VERİ İÇİN İNDEKSLEME AYARLARININ BULUNDUĞU BÖLÜM 3. indexer: İNDEKSLEYİCİ AYARLARI 4. searchd: ARAMA SUNUCUSU AYARLARI
  24. 24. SPHINX Indexer, searchdSourcesource geo{ type = mysql sql_host = 127.0.0.1 sql_user = root sql_pass = root sql_db = veritabani_adi sql_port = 3306 sql_query_pre = set names utf8 sql_query_pre = set session query_cache_type=OFF sql_query = SELECT L . *, RADIANS( L.locationLng ) ASlongitude, RADIANS( L.locationLat ) AS latitude,GROUP_CONCAT(T.tagName) AS tagLabelsFROM location L LEFT JOIN locationTagRelation LTR ON LTR.locationId=L.locationIdLEFT JOIN tag T ON T.tagId=LTR.tagId WHERE locationStatus=active GROUP BY(L.locationId) sql_attr_float = longitude sql_attr_float = latitude sql_attr_uint = locationtype sql_attr_multi = uint tagid FROM query; SELECT locationId,tagIdFROM locationTagRelation}
  25. 25. SPHINX Indexer, searchdINDEX index geo { source = geo path = /etc/sphinxsearch/data/geo/geo docinfo = extern mlock = 0 min_word_len = 1 charset_type = utf-8 }INDEXER index geo { mem_limit = 256M }
  26. 26. SPHINX Indexer, searchdSEARCHDsearchd{ listen = 127.0.0.1 Port = 3312 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 client_timeout = 300 max_children = 30 pid_file = /var/run/searchd.pid max_matches = 1000 preopen_indexes = 0 max_packet_size = 8M max_filters = 256 max_filter_values = 4096}
  27. 27. SPHINX Indexer, searchdİNDEKSLEME VE ARAMA İŞLEMİ
  28. 28. MESAJ KUYRUK SİSTEMLERİ MESAJ KUYRUK SİSTEMLERİ ASENKRON İŞLEMLERİ SIRAYA KOYARAK ZAMANI GELDİĞİNDE BUNLARI İŞLEYEBİLEN SİSTEMLERDİR.2004 yılında başlayan ve 2006 yılında olgunlaşan açık standartlı AMQP çözümü İle "mesaj kuyruğu" çözümlerİ bİr standart İle açık hale geldİ.NEDEN ? AlternatİflerVERİTABANLARINDA KUYRUK İMPLEMENTASYONU GENELDE YOKTUR. Apache QpidBU TARZ İŞLEMLER İÇİN VERİTABANINA ÇOK FAZLA SAYIDA SORGU GİDEBİLİR. JORAM RabbitMQ Red Hat Enterprise MRG StormMQhttp://www.kodaman.org/yazi/mesaj-kuyrugu-ve-rabbitmq actıvemq
  29. 29. MESAJ KUYRUK SİSTEMLERİ
  30. 30. MESAJ KUYRUK SİSTEMLERİANTI-PATTERNVERİTABANININ KUYRUK YAPiSI OLARAK KULLANILMASI BİR ANTIPATTERN DİR.NEDEN ?1. SİSTEMİN AKIŞI, KUYRUKLANMIŞ İŞLEMLERİN SONUÇLARINDAN ETKİLENİR.2. SÜREKLİ OLUŞAN INSERT DELETE UPDATE SORGULARI YÜZÜNDEN VERİTABANINDABOTTLENECK OLUŞUR.3. VERİTABANI ÜZERİNDE KUYRUK YAPISI KURMAK İSTERSENİZ BUNUN İÇİN BİR KUYRUKİMPLEMENTASYONU OLUŞTURMANIZ GEREKEBİLİR.TEHLİKE !ANTİPATTERNLER İLK UYGULANDIĞINDA HERŞEY YOLUNDA VE DOĞRU GİDİYORMUŞ GİBİ GÖZÜKSEDE SİSTEMİNİZ BÜYÜDÜKÇE DURUMU İÇİNDEN ÇIKILMAZ BİR HALE GETİRİRLER.
  31. 31. Sorular ?
  32. 32. EMAIL: mustafa.ileri@sonsuzdongu.comTWITTER: https://twitter.com/mustafaileriLINKEDIN: MUSTAFA İLERİ http://www.linkedin.com/pub/mustafa- Software Developer ileri/33/727/a27 19 MAYIS M. NİHAL S. NO:5 DEVECİOĞLU APT. DAİRE:3BLOG: ERENKÖY – KADIKÖY / İSTANBUL http://blog.mustafaileri.com http://blog.sonsuzdongu.com

×