Your SlideShare is downloading. ×
Scalability performance on_php
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Scalability performance on_php

1,889
views

Published on

PHP de olceklenebilirlik ve performans

PHP de olceklenebilirlik ve performans

Published in: Technology

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,889
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
32
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP ölçeklenebİlİrlİk Ve Performans Mustafa İlerİ EkİM12 - Özgür web günlerİ
  • 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. 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. 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. 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. 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. 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. Yük dengeleyİCİLER
  • 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. 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. PHP hizlandiricilar
  • 12. PHP hizlandiricilar
  • 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. 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. Ö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. Önbellekleme sİstemlerİ
  • 17. ÖNBELLEKLEME SİSTEMLERİ “There are only two hard things in Computer Science: cache invalidation and naming things”. Phil Lewis Karlton
  • 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. 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. 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. arama motorları
  • 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. 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. 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. 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. 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. SPHINX Indexer, searchdİNDEKSLEME VE ARAMA İŞLEMİ
  • 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. MESAJ KUYRUK SİSTEMLERİ
  • 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. Sorular ?
  • 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