WordPress
ile
Büyük Ölçekli Siteler
Hüseyin Berberoğlu · @hberberoglu
PHP Meetup #11
Ben Kimim?
- Uygun Teknoloji (2008-2009)
- Anadolu Sigorta (2010-2014)
- Nefis Yemek Tarifleri (2007-2014-...)
- WordPress eklenti geliştirici (2009-....)
https://profiles.wordpress.org/hberberoglu/
First commit
https://plugins.trac.wordpress.org/changeset/96842/wp-favorite-posts
Büyük Ölçek?
- 40 aktif eklenti
- wp_posts 1M+ kayıt
- wp_users 1M+ kayıt
- wp_usermeta 16M+ kayıt
- toplam 33M kayıt
- 7GB veritabanı
Nelerle?
- Fiziksel sunucular (dedicated)
- Load balancer (haproxy)
- Web server (apache+nginx)
- Varnish
- MySQL server (1 master 4 slave)
- Memcached
- Elasticsearch
Nasıl?
- Sunucu Optimizasyon/Konfigurasyonu
- Web server optimizasyonu
- MySQL Server optimizasyonu
- Minimum MySQL isteği
- Önbellekleme (Caching)
- CDN Kullanımı
- Şiir gibi kodlar :)
Nasıl?
- Web Server Optimizasyonu
- SSD kullanın
- Gereksiz modulleri kaldır
- mod_php yerine php-fpm kullanın
- mpm konfigurasyonu
- StartServers
- MaxClients
- MinSpareServers
- MaxSpareServers
Nasıl?
- MySQL Server Optimizasyonu
- SSD kullanın
- Konfigürasyon
- query_cache_size
- max_connections
- table_cache
- thread_cache_size
- tmpdir icin tmpfs kullanın
- MySQL Replikasyon
Nasıl?
Minimum MySQL İsteği
Maksimum performans
- Performans
- Kullanıcı memnuniyeti
- Googlebot memnuniyeti
- Sunucu memnuniyeti
- Düşük maliyet
Önbellekleme =
Önbellekleme Tipleri
- Opcode Caching
- Full Page Caching
- Object Caching
- Fragment Caching
Önbellekleme
Opcode Caching / PHP Accelerators
- APC
- OPcache
- XCache
- Zend Opcache
Önbellekleme
Full Page Caching / Tam Sayfa Önbellekleme
- WP Super Cache
- W3 Total Cache
- WP Fastest Cache
- Batcache
Peki ama hangisi?
Object Caching?
set_transient
get_transient
wp_cache_set
wp_cache_get
WordPress'te object caching desteği var.
Ama kalıcı değil :(
Kalıcı hale getirelim...
Kalıcı Önbellekleme
(Persistent Object Caching)
define('WP_CACHE', true);
- Memcached Object Cache Plugin
- APC Object Cache Backend Plugin
Fragment Caching
Önbellekleme Yaklasımı
-
Ziyaretçiler
- Giriş yapmış kullanıcılar
- Fragment Caching
- Object Caching
Özetle
- WP Super Cache vb.
- Memcached Object Cache vb.
- CDN
- Varnish
- Parçalı önbellekleme
Plugin: Query Monitor
https://codex.wordpress.org/High_Traffic_Tips_For_WordPress
Teşekkürler
Hüseyin Berberoğlu · @hberberoglu
huseyin@nefisyemektarifleri.com