Bu blog yazısı , farklı oturum depolama motorlarının Magento ile performans karşılaştırmasının sonuçlarını gösteriyor ve yaklaşık 75 eşzamanlı kullanıcıya gerçekten aralarında bir performans farkı olmadığı sonucuna varmış gibi görünüyor.
Bu seviyelerde (saniyede yaklaşık 5 işlem yaptıklarını, 12 saatlik bir süre içinde yaklaşık 430k isabet olurdu), dosya / DB / Memcache / Redis dosyalarının tümüyle işleyeceği için gördüğünüz performans sayılarına hakim olduğunu düşünüyorum. eğer düzgün kullanılırsa bir ter kırmadan trafik.
Bu, ölçeklenebilirlik, güvenilirlik ve güvenlik gibi diğer faktörleri de bırakır.
Öncelikle, bir saldırganın uygulama kodunuzu değiştirebileceği veya en azından salt okunur olsa bile anahtarları ve depolama erişim protokollerini / kimlik bilgilerini keşfedebileceği için dosya depolama alanınızdan ödün veren herhangi bir şeyin muhtemelen başka bir şeyden ödün vereceğini söylemek isterim. Giriş. Dosya depolama, düşük hacimli bir site için iyi çalışır, kurulumu kolaydır ve akıl yürütmesi kolaydır. Diske vurduğunuzda söylediğiniz kadar, bir DB okundu diski de vurur ve DB önbelleğe alabilirse, işletim sisteminiz de oturum dosyasını önbelleğe almış olacaktır. Ayrıca, bir dosya okur ve adını zaten biliyorsanız dosya sisteminize ulaşmak için mükemmeldir. PHP kullanıyorsanız, sistemin sadece uygulamanızı sunmak için kaç dosya okuması gerektiğini biliyor musunuz? Dezavantajı '
Memcache nispeten hızlıdır ve Memcache sınıfı çözümlerini daha geniş bir şekilde (Redis, vb.) Düşünüyorsanız, hız okumaları için bellek okumalarında kalıcılık vaat edecek bazı şeyler vardır, böylece her iki dünyanın da en iyisini elde edersiniz. Ayrıca, akıl yürütmeleri nispeten basittir ve oturumların anahtar / değer niteliği tam olarak bunların yapılması için tasarlanmıştır. Bunlardan birini doldurmak için ne kadar seansa girmeniz gerektiğini biliyor musunuz? Her iki durumda da, tüm seçenekleriniz kapasitelerine ulaşırsanız sizi tehlikeye atmaya zorlar. Diskler dosyalarla doldurulur (burada sayı ve boyut faktörü), önbellek depoları kapasite olarak doldurulur ve veritabanları sınırlı sayıda satıra ve dosya yaklaşımı ile aynı disk kapasitesi sınırlarına sahiptir. Ayrıca, bu sistemler yalnızca onları dağıtılmış bir şekilde çalıştırırsanız dağıtılır. Çoğu, tek bir sunucu kurulumu ile gayet iyi çalışır. Bunları dağıtırsanız, dağıtılmış sistem sorunlarınız oturum depolama seçiminizden kesinlikle görünmeyecek şekilde büyük olasılıkla zaten dağıtılmış web sunucuları / veritabanı sunucuları vb. Bununla birlikte, trafik / kapasite vb. 10 kat istediğinizde, bununla dosya depolama şemasında olduğundan çok daha doğal bir şekilde elde edilir. Bazı anahtar / değer depoları, oturum verilerinin basit analizlerini nispeten kolay bir şekilde gerçekleştirmenize izin verir, ancak çoğu SQL'in yapabileceği yere yakın bir yere ulaşmaz.
Neden veritabanının diğer seçeneklerden daha güvenilir olabileceğini önermiyorum, ancak PHP uygulamanız muhtemelen zaten kullanıyor olduğundan veritabanının cazibesini alıyorum. Bu, başka bir sunucu bağımlılığı eklemediğiniz anlamına gelir ve kullanıcı verilerini almak için oturum verilerini almak için kullandığınız aynı bağlantıyı yeniden kullanabileceğiniz anlamına gelir; böylece veriler için bir tane, Memcache vb. İçin bir tane oluşturmanız gerekmez. tablo iyi, aynı zamanda oldukça hızlı bir şekilde çalışacak ve eski oturumları birleştirmek veya oturum verilerini analiz etmek için zaten bildiğiniz oldukça basit anlambilim sağlar (neden isteyeceğinizden emin değilseniz ve bu ikisi de istemiyorsanız, muhtemelen çok önemli değil). Büyük ölçeklere ölçeklemek, Redis gibi bir şey kadar önemsiz değil,
Bence bu seçim başlangıçta çok önemli değil. Her yaklaşımın zorlukları, avantajları ve düşünmeniz gereken şeyler vardır. Genel olarak konuşursak, muhtemelen sadece PHP'nin varsayılanlarını / kullandığınız herhangi bir çerçeveyi kullanarak veya hatta en kolay olanı kullanarak uzaklaşabilirsiniz. Seçim daha sonra kötü olursa, performans analiziniz size söyleyecektir ve aldığınız trafiğin özel doğası göz önüne alındığında, uygun seçimleri yapmak için ihtiyacınız olan verilerle donanmış olacaksınız. Önde, makul olarak sahip olabileceğiniz tek şey genel spekülasyon.