Ara 182014
 
4.051 views

wp-cron.php Nasıl Bir Baş Belasına Dönüşür?

wordpress wp-cron.phpFarklı çözümler peşinde olmak, bazı riskleri de beraberinde getiriyor.

Multisite WordPress uygulamasında ısrar etmek te aynen öyle oldu.

Bu sistemin, tekli bir wordpress uygulamasına; ya da tek başına çalışan sıradan bir web sitesine kıyasla daha fazla kaynak tüketmesi olağan. Ancak bu tüketim sürekli olmaktan çok, anlık çıkışlar halinde. Özellikle wp-cron.php dosyasının devreye girdiği zamanlarda.

Paylaşımlı bir web hosting veya reseller sistemi böyle bir yapı için çok uygun. Çünkü kısa süreli yüksek kaynak ihtiyacını kolaylıkla dengeleyebilir. “Paylaşımlı” sistemin avantajı zaten bu!

Ancak son günlerde bizim hosting firmamız hem sunucuların yerini değiştirdi, hem de cloudlinux sistemine geçti. Bunun sonucu ise benim açımdan tam bir kaos oldu.

Benim sistemim, anlık çıkışlar yapan, ama trafiği çok düşük bir yapıya sahip. Ortaya çıkan tablo da bu nedenle ara sıra kaynak dar boğazına düşen, ama diğer zamanlarda kendine tahsis edilmiş olan kaynağı bile neredeyse hiç kullanmayan bir durumu yansıtıyor.

İlk tepkim hemen sitenin yerini değiştirmekti ama, 2 ay önce zaten yer değiştirmiştim. Arama motorları ve değerlendirme robotları bu tür ani değişikliklerden hiç hoşlanmıyorlar. Örneğin Alexa değerlerim bu kısacık sürede aniden tırmanışa geçti. Bakalım onları yeniden nasıl yoluna sokacağım?…

İşte bu yüzden, ben de WordPress ağımı tekrar daraltmaya karar verdim.

İlk aşama, Google’ın yeni SEO taleplerine uygun olarak ana yapıyı daha dar ama aynı konuya odaklanan subdomain sitelerine dönüştürme çalışmamı sonlandırıp, onları yeniden merkeze toplamak. Böylece wp-cron.php daha az tetiklenmiş olacak. Öte yandan, taşıması daha kolay bir sisteme sahip olmayı umuyorum. Çünkü çok sayıda subdomain siteye sahip olan bir multisite wordpress sisteminde hosting değiştirildiğinde yazılar vb pek fazla sorun çıkartmıyor olsa da, fotoğraflar birer iğneli fıçıya dönüşüyor.

Bu konuya da bir çözüm getirmek iyi olacak. Örneğin tüm alt alan (subdomain) sitelere ait fotoları merkezi bir arşivde toplamak, kaynak güvenliğini biraz riske atsa da, taşınmayı kolaylaştırma ve kargaşayı engelleme açısından çok yararlı olabilir.

Yeni sistemde wp-cron.php dosyasını sadece 1 saatlik aralarla çalıştırıyorum.

Ayrıca, W3 Total Cache eklentisini kaldırdım. Çünkü bu eklenti, büyük yararlarına karşın çok fazla CPU tüketiyor. Bir müddet sonra harici bir cache sistemi kullanmayı deneyebilirim. Ama şimdilik böyle bir riske giremem.

Cpanel’in anti-virüs seçeneklerinden de uzak duruyorum. Site analiz çalışmalarımı iyice yavaşlattım. Çünkü bu çalışmalar bile CPU kullanım değerlerini %90’lara sıçratıyor.

Anlayacağınız, bundan sonraki çalışmalarım belli bir süreliğine düşük tempoda yürüyecek.

Bütün bu olup bitenlere rağmen, bir başka gelişmeye daha tanıklık ediyorum son günlerde: Ana sitemdeki tekil ziyaretçi sayısı neredeyse 2 katına çıktı. Bu değişikliği henüz sağlıklı bir şekilde yorumlayamıyorum. Belki de Google’ın yaptığı yeniliklerden biri, tesadüfen benim çalışmalarımı ödüllendirecek bir fark yaratmıştır. Umarım öyledir… 🙂

ahmet aksoy

Ara 072014
 
2.275 views

WordPress wp-cron.php Macerası Devam Ediyor

wordpress wp-cron.php
Evet! Bir önceki yazımda WordPress cron işlemini iptal edip, tetiklemeyi daha uzun bir periyot ile ve Cpanel üzerinden denediğimi, sonra da bütün işlemleri geri aldığımı yazmıştım.

Bir kaç gün önce hosting firmamdan bir mesaj aldım. İşlemci yoğunluk limitlerini aştığım ve tekrarlanması halinde önlem alınacağını bildiriyordu.

Böylesine durumlar yabancı hosting firmalarında genellikle çok daha kibarca hallediliyor. Bizimkiler, doğru dürüst bir inceleme yapmadan paldır küldür yasaklamaya gitmeyi tercih ediyor.

Bu durum büyük bir olasılıkla harici bir bot vb ile yaratılmış olmalı. Çünkü aynı sistem uzunca bir süredir sorunsuz çalışıyordu. Üstelik son günlerde başka işlerim nedeniyle web üzerinde herhangi bir çalışma yapmaya fırsatım bile olmamıştı.

Sonra bir mesaj daha geldi. Ancak bu mesajda incelik gösterip sorun kaynağını wp-cron.php olarak belirtmişlerdi.

Cron.php’nin işlemci yüküne sebep olabildiğini zaten bildiğim için doğrudan kendi önlemlerimi almaya karar verdim.

İnterneti bu amaçla yeniden taradım. Ve bu sefer, multisite wordpress uygulamalarında, her subdomain için wp-cron.php çağrısının ayrı ayrı tekrarlanması gerektiği bilgisine ulaştım. Gayet mantıklı bir açıklama. Çözüm olarak önerilen çeşitli scriptler var. Ben, aşağıdaki çözümü sadeliği ve kolay anlaşılırlığı açısından tercih ettim:

Yukarıdaki kodun 7. satırındaki ‘yoursite.com’ değerini kendi ana domain adınızla değiştirmeyi unutmamalısınız.

Bu scripti wp-cron-mu.php olarak isimlendirebiliriz. Bu script, ana domain de dahil olmak üzere aktif durumdaki tüm subdomain sitelerin wp-cron.php dosyalarını tek tek çalıştırıyor.

Cpanel cron komutu da şöyle değişiyor:

*/15 * * * * /usr/bin/php /var/www/yoursite/wp-cron-mu.php > /dev/null

Burada da yoursite.com adresini doğru adresle değiştirmeniz gerekiyor. Çağrılar 15 dakikada bir.

Bakalım işlemcilerin aşırı yüklenmesini bu önlem giderebilecek mi? Sanırım bir kaç gün içinde netleşir!

Eğer siz de multisite wordpress kullanıyorsanız, bu yönteme ihtiyacınız olabilir.

ahmet aksoy

Kaynaklar: