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/

  1. web server - nginx
  2. application server - php-fpm
  3. 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



varnish cache ile ilgili görsel sonucu 

Object Caching


Eklenti Önerileri


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 logo ile ilgili görsel sonucu
(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?

nyt stack

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