thegodfather yazdıMerhaba arkadaşlar; şuan geliştirmeyi düşündüğümüz bir projemiz var bu proje tahmini üç yüzbin(300.000) kullanıcının aktif olarak kullanmasını bekliyoruz ilk zamanlar bu rakam yüz bin(100.000) civarı veya aşağı olması bekleniyor laravel kullanmak performans sorunları yaşatırmı. ?
Konu ile ilgili tercübelerinizi paylaşırsanız sevinirim.
Teşekkürler.
Proje hakkında hiçbir detay bilmiyoruz. Onlarca query yapan haber sitesi mi? Sosyal medya mı? IO'su fazla olan basit bir sözlük sitesi mi?
Aktiflikten kastıt nedir, günde en az 1 defa pageview vermek mi? Haftada bir giriş yapmak mı? Tek bir pageviewin sisteminize verdiği yük nedir? Kaç query yapılıyor? Günlük hit dağılımı zamana göre eşitmi dağıtılıyor yoksa büyük ölçüde peak olduğu saatler var mı? Ortalama günlük ve saatlik pageviewleriniz kaç? Ağır işlemler yapılıyor mu? (örn image processing vb.) Cacheleyebileceğiniz alanlar çokmu? Realtime işler var mı? Laravel'in arkasındaki stack nasıl? Klasik LAMP stack mı?
Şu aşamada ne desek yalan olur, ama Laravel yavaş bir framework. Bu yavaşlığın sebebi, çok fazla magic işlem olması ve çok fazla dosya yüklemesinden kaynaklı. Yani Laravel çalışmak için sunucudan büyük bir kaynak yiyor, ama o yediği kaynak için size birçok avantaj sunuyor. (örn builtin queue sistemi) Basit bir sözlük sitesiyse bahsettiğin, bu durumda kaynağın %90'unu laravel, %10'unu sözlük algoritması yiyecek diyebiliriz. Bu durumda projeyi Klein veya Lumen ile yazıp büyük bir performans artışı/kaynak tüketiminin azaltılmasını sağlayabilirsin. Aynı şekilde, senin projen başka API'lerden besleniyorsa, verileri ağır algoritmalardan geçiriyorsa, sorguların ağırsa ve fazlaysa, ağır işlemler yapıyorsa; bu durumda da micro framework kullanmanın senin için bir artısı olmayacak, çünkü Laravel'in tükettiği kaynak, uygulamana göre düşük bir halde kalacak.
Dediğim gibi, herşey projene göre değişiyor ve biz hiçbirşey bilmiyoruz, ama şunu söyleyebilirim. Laravel'in 3 hiti kaldıramayacağı durumlar da var, haftalık milyarlarca hiti kaldıracağı durumlar da var. Herşey kurguladığın yapıya göre değişiyor. "300.000 kullanıcıyı Laravel kaldırmıyor." gibi bir düşünce kesinlikle yanlış olur. Laravel içi ve Laravel dışı yapabileceğin onlarca şey var.