Milenyumun başlangıcından beri web tasarım ve programlama ile uğraşan biri olarak PHP Nuke ile başlayıp WordPress ile devam eden bir süreç yaşadık. Bu sürecin günümüz ayağında pazarın %34 ‘ünü elinde bulunduran WordPress ve yaşanan en can sıkıcı sorunlardan biri olan CPU kullanım oranı ve bu sorunu yaşamamak için alınacak önlemler, hosting seçimi gibi konuları bu yazıda öğrenebilirsiniz.
Geçmişte Web tasarım denince; html ve css bilen kişiler bu işleri yapar ve herkesin ihtiyacını bir şekilde görürlerdi. Sitelerdeki dinamik yapı henüz kimse tarafından ihtiyaçlar listesine dahil edilmemişti. Benim gibi bu işi uzun yıllardır yapan insanlar web tasarımın kronolojisini daha iyi hatırlayacaktır. Milenyumun ilk yıllarında PHPNuke ile pek çoğumuz daha özel siteler yapma fikri ile bilgi edinmeye, kendimizi geliştirmeye ve yenilikleri sindirmeye çalıştık. Derken PHP Nuke zamanla bu popülerliğini kaybetti. Hemen hemen aynı mantıkla popüler olmaya başlayan WordPress ise popülerliğini günden güne artırarak günümüzdeki en büyük CMS (Content Management System) olmayı başardı.
Getirdiği yenilikler ve sürekli güncellenen, eksiklerini sürekli gideren WordPress sanırım benim gibi pek çok insanın aklını çelmiş olacak ki, bugün yayına açtığım tüm blog ve portalları bu sistem üzerine inşa etmeye devam ediyorum.
Tabi bunu yaparken yaşadığım en ciddi sorunların başında başında gelen sanırım CPU ve Ram kullanımına bağlı ortaya çıkan sorunlardır. Bir örnekle özetlemek gerekirse;
Şu anda bu yazıyı okuduğunuz site daha önce HostLab isimli şirketin İstanbul’daki sunucularında barındırılıyordu. Başlarda herhangi bir sorun yoktu ama site trafik almaya ve misafirlere kullanım kolaylığı sunan özellikler eklenmeye başlayınca sorunlar birbiri ardına gelmeye başladı.
Sorunların en büyüğü bir yazı paylaşmaya çalıştığımda “Bağlantı koptu. Bağlantınız düzelene kadar kayıt eylemleri devre dışı bırakıldı. Her ihtimale karşı, bu yazıyı tarayıcınıza yedekliyoruz.” Hatası alıyordum ve bu hata ya birkaç dakika sonra kendiliğinden düzeliyor ya da sayfadan çıkmam gerekiyordu. Tabi bu sorunu yaşarken sitenin kullanıma kapanarak “Site Teknik bir aksaklık yaşıyor” hatası verdiğini de bilmenizde fayda var.
Benzer olarak aldığım bir diğer hata da Öne Çıkan Görsel yüklemeleri sırasında karşıma çıkıyordu. Görseli yükledikten sonra seçip alt bilgilerini girdiğimde görsel bir türlü olması gerektiği gibi görüntülenmiyor ve yukarıdaki gibi Bağlantı koptu hatası almaya başlıyordum.
Bu konuda hosting sağlayıcı ile görüştüğümde sunucumu değiştirmeye kadar pek çok önlemi denememize rağmen sonuç alamadık.
Benim başıma gelen ve sonuç elde ettiğim yöntem sizin yaşadığınızla aynı şekilde çözülmeyebilir. O nedenle ben kendi deneyimlerimi aktardıktan sonra size bu durumu önlemenize ya da çözmenize olanak sağlayabilecek yöntemlerden bahsedeceğim.
Site HostLab sunucularında barındırıldığı süreç içerisinde maalesef tam olarak çözüm üretemedik. Birazdan bahsedeceğim yöntemlerle bu durumu en aza indirgemeyi başarmış olsam da bu durum beni tatmin etmediği için siteyi farklı bir şirketin yurt dışı makinalarına taşımayı uygun gördüm. Burada da imdadıma hala hosting firmalarına danışmanlık veren bir dostum koştu ve beni Contabo isimli firma ile tanıştırdı. Ödediğim fiyat aylık 10 lira fark etti ama bu sorunları bir daha yaşamadım.
Gelelim mevcut durumda neler yapabileceğinize;
Eklentiler WordPress ‘i istediğiniz gibi özelleştirmenize, yeni özellikler eklemenize ve fonksiyonel olarak istediğiniz özellikte bir web sitesine sahip olmanızı sağlarken sitenizin SEO ayarları gibi önemli şeyleri de basitçe yapmanızı sağlayan küçük programlardır.
Küçük diyerek küçümsediğimi düşünmeyin sakın çünkü öyle eklentiler var ki kullandığı kaynak sitede yer alan tüm yazılımları sollayabilir.
Bu nedenle kuracağınız ya da kurmuş olduğunuz eklentileri Google ile araştırın ya da bu konuda bilgisine güvendiğiniz meslektaşlarıma sorarak, eklentinin ne kadar kaynak kullanabileceğini ya da yüksek kaynak kullanımına neden olup olmayacağını öğrenebilirsiniz.
Bununla beraber sorun yeni başladıysa ve o dönem kurduğunuz eklentiler varsa bunları kaldırarak muadil eklentilerle devam etmeye çalışabilirsiniz.
Eğer o eklentiyi mutlaka kullanmak istiyorsanız da son sürümü kullandığınızdan emin olun. Bugün internette kolayca bulabileceğiniz NULLED sürümlerinden de uzak durmanızı öneririm. Kod sistemi orijinal yazılımcısı haricinde değiştirilmiş eklentiler farklı sorunlara neden olabilir, hatta web sitenizin 3. Şahıslar tarafından ele geçirilmesine neden olabilir.
Bir web sitesini düz tasarımdan yazılıma çeviren şey aslında çoğunlukla veritabanı sorguları yapabilmesidir. Yani düz html kodlama ile yazılmış bir web sitesi ziyaretçiden bilgi toplayamaz, üyelik sistemi oluşturamaz ve bu sistemi denetleyemez. Bu işi üstlenen web programlama dili ile yazılmış uzun kod satırlarıdır. Bu kodlar içinde en büyük işi yapan kısım ise veritabanı sorgularıdır.
Bu nedenledir ki en yüksek CPU ve Ram yine bu sorgular tarafından kullanılır. O nedenle gereksiz sorgular nedeniyle sisteme yük verecek durumlardan kaçının. Buna sebep olan özel kodları sitenize eklemeyin. Örneğin bir devlet dairesine gittiğinizde gişelerde bulunan sorumlu personel herkese sırayla cevap vermeye çalışır. Aynı anda 4 kişinin soru sorduğunu düşünün. Sağlıklı bir cevap alabilir misiniz? Bu durum o personelin sinirlenmesine ve o andan itibaren daha mutsuz ve verimsiz çalışmasından başka bir netice doğurmayacaktır. Aynı şekilde eğer yüzlerce konuyu bir kişiye bırakırsanız yine verimsiz bir sonuçla karşılaşırsınız. Çünkü gerekli gereksiz pek çok bilgi bu insan tarafından öğrenilmeye ve sindirilmeye çalışılırken, hiçbir konuda tam yetkin olamayacaktır.
Veritabanı da bir insan beyni gibi düşünülmelidir. Kapasiteyi aşan anlık sorgu sayısı, zaruri olmayan ya da artık geçerliliği olmayan bilgiler, veri tabanını zamanla ağırlaştırıp işlevini doğru biçimde yerine getirmesini engelleyecektir. Bu durumun önüne geçmek için çeşitli eklentiler ile periyodik olarak veritabanı optimizasyonu yapabilir, bu sayede veri tabanında artık kullanılmayan sütun ve satırlardan kurtularak sistem üzerindeki yükü azaltabilirsiniz.
Tema kodlayan tasarımcı ve yazılımcılar fonksiyonelliği artırarak albeni oluşturmak adına bazen gerçeklerden uzaklaşabilirler. Her sitenin kendi sunucusu olacak diye bir kaide olmadığı gibi tasarımcı ve yazılımcılar bu gerçeği göz ardı etmemelidir. Kendi sunucusunda barınan bir sitenin sunucuyu yavaşlatabilecek ya da durdurabilecek kadar kaynak kullanması için sanırım Hepsiburada, N11 gibi sitelere eş değer trafiğe sahip olması gerekir. (Biraz abartmış olabilirim)
Tema seçiminde sadelikten zarar görmezsiniz. Sonuçta web sitenizi ziyaret eden insanlar içeriğiniz için gelecektir. Web siteleri birer sanat eseri değildir. Tabii ki şık ve kolay kullanılabilir olmasını herkes ister ama asıl konu ziyaretçinizin ne kadar kısa sürede bilgiye ulaşabildiğidir. Bunu düşünerek tema seçimi yapmalı, gereksiz komplikasyonlar sunan temalardan uzak durmalısınız. Bir temada karar kıldığınızda acil durumlar için yedek bir tema daha bırakarak diğer temaları sistemden silmeniz yine gereksiz yer kaplamaların önüne geçecektir.
WordPress sürekli gelişen ve yenilenen, dinamik bir sistemdir. Yayınlanan her sürüm sıfır hatalıdır demek imkansızdır. Yüzlerce insanın geliştirdiği bir sistemde genelde çakışmalar ve hatalar ortaya çıkma olasılığı yüksektir. Bu nedenle yeni sürüm uyarısı aldığınızda sitenizi güncellemeniz, bir önceki sürümün hatalarını gidererek belki de sorununuza çözüm olabilir. Yani bir önceki sürümde kaynak kullanımını artıran kod satırları bu yeni sürümde kaldırılmış olabilir. O nedenle güncellemelerinizi ihmal etmemelisiniz.
Hosting kontrol panellerinden aşina olduğumuz CRON işlevi, sizin belli aralıklarla bir görevi sunucuya otomatik yaptırmanızı sağlayan hizmettir. Hosting sunucusundan bağımsız olarak WordPress ’in kendi içinde bir CRON sistemi vardır. Zamanlanmış görev olarak da adlandıracağımız bu hizmet WordPress tarafından aslında sizin işinize yaramayan pek çok görevi çalıştırdığından kaynak kullanımını yükseltebilir. Eklenti kurmadan bu görevleri görmeniz ve müdahale etmeniz kod bilgisine dayandığı için bu işi eklenti ile yapmanızda fayda var. Wp Control gibi eklentilerle işinize yaramayan görevleri durdurabilir hatta tamamen yok edebilirsiniz.
Cache eklentileri aslında temelde, sitenizi ziyaretçilerin bilgisayarına yükleyerek bir sonraki ziyaretlerinde bu yükledikleri dosyaları kullanarak daha hızlı işlem yapma mantığı üzerine çalışır. Yüksek trafikli ve sürekli güncellenen sitelerde bu durum hayati öneme sahiptir. Her bir dosyanın tekrar tekrar yüklenmesi sunucu kaynaklarını tüketeceğinden cache eklentisi kullanmayı ve ince ayarlarını mutlaka öğrenin. Emre Vona isimli bir kardeşimiz tarafından yazılmış olan
WP Fastest Cache
eklentisinin ücretsiz versiyonu orta ölçekli bir sitenin ihtiyaçlarını fazlasıyla görecektir.
CDN sitenizin hızını etkilediği gibi aslında kaynaklarında daha az kullanımına olanak sağlayan bir sistemdir. Örnek vermek gerekirse hepimiz bir otomobil üretim bandı görmüşüzdür. Orada arabanın çıplak gövdesi bant üzerinde yürütülürken çevreden birden fazla robotik kol çeşitli montaj işlerini aynı anda ve senkronize biçimde yaparlar. CDN de aynı mantıkla çalışır.
Sitenizin birden çok sunucuda barındırıldığını ve ziyaret esnasında sitenizi oluşturan dosyaların aynı anda ve senkronize olarak ziyaretçinin tarayıcısına gönderildiğini düşününce aslında ne kadar yararlı bir hizmet olduğunu da anlamış olacaksınız ? CloudFlare gibi ücretsiz CDN servisleri beraberinde getirdiği güvenlik önlemleri nedeniyle site açılma hızını olumsuz etkileyebilir o nedenle bütçeniz varsa ücretli ve sadece CDN hizmeti sunan firmaları tercih etmenizi öneririm.
Bu seçimi yapmak için öncelikle projenizin boyutunu hesaba katmalısınız. Günlük 0-100 ziyaretçi trafiği ile aylık 50.000 üzeri ziyaretçiye hizmet veren bir site için farklı özellikler aramalısınız. Benim açımdan bakıldığında standart bir hosting yerine VPS tercih etmenizi öneririm.
Seçim yaparken de SSD sürücü sunan, mümkün olduğu kadar fazla CPU ve RAM sayı ve miktarına sahip paketlerden seçmeniz gelecekte siteniz trafik çekmeye başladığında daha az sorun yaşamanıza olanak tanır.
Başlarda da dediğim gibi ben Contabo isimli firmanın 5Euro/Ay şeklinde fiyatlandırdığı bir paket kullanıyorum. Centos 7 işletim sistemi tarafından yazılan CWP Kontrol panel, aylık kontrol panel ücreti ödemesi olmadan sunucunuzu yönetmenizi sağlar. Tek sorun ödemeyi geciktirmeniz durumunda sunucunun tekrar aktif hale getirilmesi için ekstra para istemeleri ?
Şu an sitenin bulunduğu paket özellikleri…
WordPress kullanmak isteyenler için oluşabilecek ciddi sorunlardan birine çözüm aramaya çalıştık. Karşılaştığım ve çözümünü bulduğum buna benzer pek çok durum için yazmaya devam edeceğim. Umarım bu tip sorunlarla hiç karşılaşmaz ve bu yazıyı okumak zorunda kalmazsınız ?
Buraya kadar sabırla okuyan herkese teşekkürler. Sevgiyle Kalın <3