WordPress ile Yüksek Trafik
Performans
Optimizasyon
Geliştirme
Hüseyin Berberoğlu · @hberberoglu
WPFest 2020
Ben Kimim?
- Ege Üniversitesi (2004-2008)
- Nefis Yemek Tarifleri (2007-...)
- Java Yazılım Uzmanı (2008-2014)
- Nefis Yemek Tarifleri (2014-...)
Siz?
- WordPress sitesi olanlar
- Eklenti yazanlar
- Bir WordPress'i birden fazla sunucuda çalıştıranlar
- Daha önce "cache" kavramını duyanlar
- Cache kavramını bilenler
https://profiles.wordpress.org/hberberoglu/
First commit
WP Favorite Posts
https://plugins.trac.wordpress.org/changeset/96842/wp-favorite-posts
Yüksek Trafik?
- 17M+ tekil ziyaretçi
-
1M+ aktif uygulama kullanıcısı
(Android: 5M+ indirme, 4.8 puan) - 500bin+ fazla tarif, binlerce yazar,
milyonlarca üye - Türkiye'nin en çok ziyaret edilen
57. web sitesi (SimilarWeb)
Büyük Ölçek?
- 38 aktif eklenti
- wp_posts 6.5M+ kayıt
- wp_comments 2.5M+ kayıt
- toplam 100M+ kayıt
- 34GB veritabanı boyutu
- Günlük ortalama 10 milyon request
Başlangıç
👍
Trafik Geliyor
- 10 sayfa gösterimi/gün: sorun yok
- 1000 sayfa gösterimi/gün: sorun yok
- 10.000 sayfa gösterimi/gün: yavaşladı
- 100.000 sayfa gösterimi/gün: çok yavaşladı
- 1 milyon sayfa gösterimi/gün: açılmıyor
- 10 milyon sayfa gösterimi/gün -
WordPress ile olur diyenler?
Neden yavaşlıyor?
Kaynak az (CPU vb)
Sayfa üretim süresi
şerit az
araba yavaş
Ne yapmalı?
Kaynakları arttıralım
- Hosting'de üst pakete geçme
- Yüksek kaynağa sahip VPS, Cloud sunuculara geçme
- Dedicated makinelere geçiş
veya Managed Hosting
Daha İyisi
Optimizasyon
Sayfa Üretim Süresi
Üretim süresini etkileyenler;
-
Cache kullanım durumu
- Kullanılan tema
- Aktif eklentiler
- Sunucu/hosting (kaynak) özellikleri
- Sürekli takip
Standart WordPress
/tarifler/
- web server - nginx
- application server - php-fpm
-
php kodları çalışır:
WordPress, eklentiler, tema...
- MySQL isteği
- MySQL isteği
- MySQL isteği
- MySQL isteği
- MySQL isteği
- MySQL isteği
Cache Eklentili WordPress
/tarifler/
Minimum MySQL isteği
=
Maksimum performans
Cache Eklentisi Önerisi
WordPres Core Contributor
Cache Eklentisi Önerisi
WP Super Cache
W3 Total Cache
Proxy Cache
Object Caching
Eklenti Önerileri
- Redis Object Cache
https://tr.wordpress.org/plugins/redis-cache/ - Memcached Object Cache
https://wordpress.org/plugins/memcached/
(Güncellenmiyor)
Eklenti/Tema Seçimi
- Yazılan kodun kalitesi
- Yazan kişi
- Kullanım sayısı
- Güncellik
- Puan
CDN Kullanımı
https://gtmetrix.com/why-use-a-cdn.html
CDN Kullanımı
CDN Önerileri
(CloudFlare CDN'den fazlası)
- Medianova
- Akamai
- Cdn77
- Fastly
WordPress Geliştirme
- WordPress'i güncel tutun
- WordPress'in çekirdek koduna müdahale etmeyin
- Geliştirmelerinizi eklenti halinde yapın
- WordPress Codex'i okuyun
Detaylar için:
PHPKonf / Modern WordPress Geliştirme
Mustafa Uysal
Sunucu/Hosting Özellikleri
- PHP 7+ kullanın
- SSD olmazsa olmaz
-
Yüksek hızlı CPU kullanın
3GHz ile 4Ghz çok fark ediyor - Memcached/Redis gibi bir kalıcı cache kullanın
- MySQL'i optimize edin
- MySQL'i ayırın, farklı sunucuya kurun
-
Daha ileri seviyede MySQL replication şart
(HyperDB eklentisi ile yapabilirsiniz)
Sürekli Takip
Query Monitor eklentisi
Managed WordPress Hosting
Peki ya NYT?
Son Olarak
High Traffic Tips For WordPress
https://codex.wordpress.org/High_Traffic_Tips_For_WordPress
Teşekkürler
Twitter: @hberberoglu
CV'leri bekliyorum :)
WPFest 2020
By Huseyin Berberoglu