Evet başlıktan da anlaşıldığı gibi cpu kullanım sorunu ve buna bağlı olarak sitenin yavaş açılması problemini anlatan bir yazı ile karşınızdayız. Bu yazımızda bu tür sorunların giderilmesini aşama aşama anlatıcam sizlere.

Öncelikle konudan haberdar olmayan ve tesadüfen bu yazıyı okuyup sitelerdeki cpu nun ne olduğunu bilmeyen arkadaşlara, hostingin size ayırdığı cihazlara ait olan işlemcilerin performansı olduğunu belirtelim. Evinizde ve işyerinizde kullandığınız bütün bilgisayarlarda işlemci ve bu işlemcilerin de kalitesine göre performansları bulunuyor. Siteniz için ayrılmış olan cpu kullanımı, ziyaretçi sayınız arttıkça yükselmeye başlar ve website sayfasının açılma hızının oldukça düşmesine neden olur. Özellikle WordPress kullanan kişilerde bu sorun bir hayli yüksektir ki sebebi de işinize yarayan ve yaramayan ne kadar eklenti varsa yükleyip kurmanızdır. Bu sadece cpu kullanımını uçurup websitenin 10 saniye yada 20 saniyede açılmasına sebep olanlardan sadece bir tanesidir. Hosting şirketinizden almış olduğunuz limitsiz trafik, limitsiz disk alanı gibi paketlerin içinde yüksek cpu paketi olmadığından, ziyaretçi sayısı belli bir miktara ulaştıktan sonra site açılmaz hale gelecektir. Bu yüzden limitsiz diye bahsedilen paketler sizi aldatmasın, o paketleri satın alarak milyonlarca ziyaretçiye ev sahipliği yapamıyorsunuz. Bu yazımızda anlatacaklarımızı uyguladığınız taktirde, çok iyi bir ziyaretçi sayısını sorun olmadan sitenizde ağırlayabilirsiniz. Dilim döndüğü kadar bu sorunları ve bu sorunları nasıl çözeceğinizi aşama aşama anlatıcağım sizlere. Yazı biraz fazla uzun sürecek ama en sonunda süper hızlı açılan bir websiteniz olacağından emin olabilirsiniz.

Öncelikle hosting yönetim panelinizden cpu usage bölümünü açıp ne kadar cpu tükettiğinize bakın. Gerçi bakmanıza gerek yok ama öncesi ve sonrası aradında ne kadar fark olduğunu görmeniz açısından faydalı olacaktır. Bendeki cpu kullanımı yüzde 50 lerde iken site açılış süresi 15 saniyeyi buluyordu. Yaptığım değişiklikler sonucu yüzde 2 ye kadar düştü cpu kullanımı.

Bu bölümden kendi sitemin cpu kullanımına baktığımda 1%  bazen de 0% olduğu gözüküyor yalnız hemen altında çıkan grafiklerdeki  bazı vakitlerde 100% e kadar çıktığı görülüyor. Şimdiye kadar anlık sitede olan en fazla kişi sayısını yakalayamadım hiç. Bu yüzden kesin bir rakam söyleyemem size. Gerçi sizin kullandığınız paket ve benim kullandığım paket farklılık gösterebilir. Bundan dolayı bir  rakam söylememin bir anlamı da olmaz. Hatırladığım kadarıyla  gün içinde bir kaç defa cache  özelliğini devre  dışı bırakmıştım. 100% cpu kullanımı o anlara  ait sanırım. Sizdeki  kullanım miktarı alttaki resimdeki gibi değilse ve grafiklerde  sürekli  yüksek  gözüküyorsa hemen bu yazıdaki anlatılanları uygulamanız gerek yada ek cpu paketi satın almanız gerekecek.

 

Şimdi hazırsak sitemizi  uçurabiliriz değil mi?

1- Eklentiler:

Websitenizde  kullanmadığınız yada süs  olsun diye kurduğunuz  bütün gereksiz  eklentileri  acımadan devre  dışı bırakın. Her eklenti sayfanızda  farklı sorgulara neden olacağından site açılma süresini önemli derecede  etkileyecektir. Sadece sizin için çok  önemli olan eklentileri kullanmaya devam edin. Hangi eklentilerin sitenizi kaç saniye yavaşlattığını görmek istiyorsanız aşağıdaki download butonundan P3 (Plugin Performance Profiler) wordpress eklentisini indirip kurun. P3 eklentisini çalıştırdıktan sonra hangi eklentinin ne kadar sürede  açıldığını  gösteren bir grafik ile karşılaşacaksınız. Bu grafiğe  göre  hangi  eklentileri gözden çıkarmanız gerektiğini tespit edebilirsiniz. Hatta bu yüzden yıllardır kullandığınız canınız  ciğeriniz olanları bile silmek zorunda kalabilirsiniz.

Gereksiz eklentileri sildikten sonra  sıra geldi  diğer bir önemli aşamaya

2- Cron Job (Zamanlanmış görevler) devre dışı bırakma

Cron job WordPress sisteminin zamanlanmış görevleri yapmasına yarayan bir işlevdir. Bu işlevi yerine getiren ise wp-cron.php dosyasıdır.  Farkında olmazsınız ama arkaplanda sürekli çalıştığından hostunuza  aşırı  yük bindirerek sitenizi yavaş açılmasına neden olur. Zamanlanmış görevleri devre dışı bırakmak için site dosyalarınızın  bulunduğu ana dizinindeki wp-config.php  dosyasını bir metin editörü ile  açıp aşağıdaki kodu uygun bir yere  ekleyin. Tam olarak nereye ekleyeceğinizi bilmiyorsanız  benzer  bir kodun altına yapıştırın.

define('DISABLE_WP_CRON', 'true');

Örnek  olarak şu kodun altında yapıştırabilirsiniz.

define('WP_DEBUG', false);

3-Resimleri optimize edin

Konulara  yüklemiş olduğunuz  görsellerin önemi elbette ziyaretçi  çekme bakımından oldukça önemlidir. Ne kadar net  görüntü paylaşırsanız üyeleriniz de o kadar net görür ve rahat eder ancak HD resimlerin boyutu yüksek olduğundan da kullanmak biraz can  yakabiliyor.  HD resimleri daha küçük boyutta kullanabilmek için illa resmi küçültmeniz gerekmez. Online PNG ve JPEG  formatındaki resimleri  bozmadan sıkıştıran siteler mevcut. Yazınıza  herhangi bir görsel yüklemeden önce online sıkıştırma araçlarını denemenizi tavsiye ederim.

  • JPEG resimleri sıkıştırma sitesi : Compress Jpeg
  • PNG resimleri sıkıştırma sitesi : Tinypng

Size tavsiyem png formatında resimler hazırlayıp Tinypng sitesi ile png formatındaki resimleri sıkıştırarak kullanın. Compress Jpeg sitesi Tinypng  kadar başarılı olamıyor. Tinypng sitesi  görüntüye kesinlikle hiç zarar vermeden 70% hatta 80% civarında  bir sıkıştırma  sağlayarak 1mb resmi 300kb ye kadar düşürebiliyor. Ayrıca  Tinypng sitesinin WordPress için de bir eklentisi mevcut. Sitenize  yüklemiş olduğunuz bütün png resimleri tek seferde sıkıştırma işlemi için pro versiyonunu satın almanız gerekiyor yalnız günlük yüklemiş olduğunuz resimleri  sıkıştırmak isterseniz  belli  bir limiti var. Çok fazla içerik yüklemiyorsanız eklentinin günlük limiti size  yeter. Böylelikle yüklemiş olduğunuz resimleri anında optimize  ederek  websayfanızın boyutunu küçültmüş olursunuz.  Eklentisini hemen alttaki download butonundan indirebilirsiniz.

4- Tarayıcı önbellekleme özelliğinden yararlanın

Bir ziyaretçi sitenizi ziyaret ettiği zaman web sayfanızdaki resimler, css dosyaları, js dosyaları ziyaretçinin bilgisayarına yüklenir ve o bilgisayarda sizin websiteniz görünür.  Ziyaretçi her gelişinde bilgisayara yükleme işlemi defalarca tekrar  eder ve sunucunuzdan defalarca aynı dosyaları indirir. Bu  tekrarları durdurup ziyaretçi bir dahaki gelişinde daha önceden bilgisayara kaydolmuş dosyaların açılması  için kullanılan özelliğe Tarayıcı önbellekleme denir. .Htaccess dosyası üzerinden tarayıcı önbellekleme özelliğini  etkinleştirmek için ana dizindeki .htacces dosyasını  açıp aşağıdaki kodu ekleyin ama kapatmayın. Ardından Gzip sıkıştırma kodunu ekleyeceksiniz. Yalnız  altta verdiğimiz kodlar  sadece sizin sunucunuzda  barındırdığınız dosyaları önbelleklemeye yarar. Başka sitelerden çekilen js ve css  uzantılı dosyaları  önbelleklemede işe yaramaz adsense ve analytic sitelerinin javascript dosyaları gibi. Onları da önbelleklemenin yolu kendi sunucunuza  yüklemenizdir ama tavsiye edeceğim bir yöntem değildir. O yüzden onların öyle kalmasında herhangi bir sakınca görünmüyor.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

Gzip sitenizdeki  dosyaları  dıkıştırma yöntemidir. .htaccess  üzerinden gzip  sıkıştırmayı etkinleştirmek için alttaki kodu .htaccess  dosyanıza  ekleyip kaydedin ve sunucunuza yollayın.

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

7- Oluşturmayı önleyen JavaScript ve CSS kodlarını ekranın üst kısmındaki içerikten kaldırın

Bazı  temalarda bunu yapınca  olumsuz  etkilerle  karşılaşabiliyoruz maalesef. WordPress Above The Fold Optimization eklentisi  yardımıyla Css ve Js dosyalarınızı header.php dosyasından footer.php dosyasına otomatik taşıyabiliyorsunuz. Ayrıca  function.php  için bunu yapabilen  fonksiyonlar da mevcut. Size  tavsiyem bu kısımla da fazla uğraşmayın, yok illa uğraşacam diyorsanız Above The Fold uygulamasını kullanarak yapabilirsiniz  bunu. Size tavsiyem ise  bütün js ve css dosyalarınızı sıkıştırıp birleştirin  tek seferde. Online js ve css sıkıştırma siteleri mevcut bu siteleri kullanarak yapabilirsiniz sıkıştırma işlemini. Dosyalarınızı sıkıştırdıktan sonra temanızın header.php dosyasına kaydedin adresleri. Eğer herhangi bir sorun ile karşılaşmazsanız  link adreslerini footer.php dosyasına taşıyın. Hala sorun yoksa  işlemi başarıyla yaptınız demektir.  Buraya kadar olan adımları bitirdiğinizde aşağıdaki sıralı seçenekler başarılı olarak gözükecektir.

  • CSS’yi küçültün
  • HTML’yi küçültün
  • JavaScript’i küçültün
  • Sıkıştırmayı etkinleştirin

Bundan iyi  Şam’da kayısı değil tabi ki. Hızlandırmaya  devam ediyoruz. Sıra geldi en can alıcı kısma.

8- Wp Super Cache Ayarları

Wp Super Cache  tek  başına birçok görevi yapmasına rağmen yine de  onu anlatmayı en sona bırakmak zorunda kaldım. Sebebi ise neyin ne olduğunu anlatmaktı elbette. Belki sadece Wp Super Cache eklentisinin ayarlarının nasıl olacağını  anlatmış olsaydım yeterdi ama fazla  bilgi göz çıkarmaz elbette. Kendi başına  Css, JS, Gzip ve Html sıkıştırmayı yapabildiği gibi gelen ziyaretçilere de sitenizin normalini  değilde  kopyasının süper sıkıştırışmış html halini gösteriyor. Gelen ziyaretçi tabi ki de bu değişikliğin farkına bile varmıyor tek fark ettiği HD resimlerle  süper hızlı açılan bir websitesi. Hatta  bazı ayarları  etkinleştirdiğinizde  siteniz  süperin ultrası hızında  açılıyor  ama o zaman da siz yönetim paneline giriş yapamıyorsunuz maalesef. Yönetici ve giriş yapmış yada  giriş yapmaya niyetlenen üyeler giriş butonuna bastığında anasayfaya yönlendiriliyorlar. Neyse fazla  sulandırmanın bir anlamı yok konuya devam.

İlk adım olarak Wp Super Cache eklentisini alttaki butondan indirin yada Yönetim paneli > Eklentiler > Yeni ekle bölümünden Wp Super Cache yazıp eklentiyi kurup etkinleştirin.

Bölüm 1 Kolay sekmesi:

Wp Super Cache yi etkinleştirdikten sonra Yönetim paneli > Ayarlar > Wp Super Cache linkine tıklayın ve Önbellekleme açık seçeneğini işaretleyip Durumu Güncelle butonuna basın.

Bölüm 2 Gelişmiş sekmesi:

Bu sekmede  resimde  kırmızı olarak gösterilen bütün yerleri işaretleyin. Sayfanın altında  daha devamı, resme sığmadığından ekleyemedim. Yanında önerilen yazan bütün kutucukları işaretleyip Durumu güncelle butonuna basın. Eski tarz  önbellekleme çok işe yarar ama işaretlediğinizde yönetim panelinize  bir daha giremiyorsunuz. Bu yüzden o seçeneği işaretlemeyin. Eğer  yönetim paneli ile işiniz yoksa işaretlemenizde sakınca yok.

İşaretelemeniz  gereken kutucuklar:

  • Önbellekleme Açık (Önerilen)
  • Önbellek dosyalarını sunmak için PHP kullan. (Önerilen)
  • Sayfalar daha hızlı yüklensin diye sayfaları sıkıştır. (Önerilen)
  • Giriş yapmış kullanıcılar veya düzenli yorumcular için sayfaların önbellekleme. (Önerilen)
  • Önbellek yenileme. Yeni bir önbellek dosyası oluşturulurken ziyaretçilere eskisi gösterilir. (Önerilen)
  • 304 Not Modified browser caching. Indicate when a page has not been modified since it was last requested. (Önerilen)
  • Mobile device support.
  • (Önerilen)

Bu kutucukları işaretledikten sonra Durumu Güncelle butonuna basın.

Zaman Aşımı & Çöp Toplama

Yine aynı sekmede bulunan Zaman aşımı ve Çöp toplama bölümü Cache sürelerini yani önbelleğe alınan dosyaların ne zaman yenileriyle değiştirileceğini gösterir.

Cache Timeout: 3600 saniye olarak belirleyin.

Scheduler: bölümünden clock kutusunu işaretleyip 24 (saat olarak sayılır) yazın.

Interval: günde  bir olarak belirleyin.

Bu seçenekleri doldurduğunuzda Zaman aşımını değiştir butonuna tıklayın.

Kabul Edilecek Dosyalar & Reddedilecek Adresler

Altta sıralı olan kutuları işaretlediğinizde  bu sayfalar önbelleğe  hiç bir zaman alınmayacak. Boş bırakmanız  daha iyi olur.










Bölüm 4  İçerik sekmesi:

Bu sekmede  süresi dolan dosyaların listesi görünür. Dilerseniz silersiniz dilerseniz de silmezsiniz size kalmış.

Bölüm 5 Önyükleme:

yazıyı önyüklemeye al şeklinde seçip önbellek önyüklemesini şimdi çalıştır butonuna basın.

Evet bu kadar. Biraz fazla uzun ve fazla can sıkıcı olsa da uğraşmaya değer ve oldukça  önemli bir konuydu bu. Aylardır  yayınlamak istediğim halde yazmaya bir türlü fırsatım olmuyordu. Kısmet bu güneymiş, umarım sizler için faydalı bir yazı olmuştur.


Mintik senin düşüncelerini merak ediyor.Bir yorum yaz

  1. Çıplak Yazar dedi ki:

    Cpu sorunum vardı.

    Süper cache eklentisi kullanıyorum ama bazı ayarları farklı – eksik yapmışım sanırım onları düzelttim.

    Teşekkür ediyorum. Faydalı bir yazı olmuş.