2010-06-18 21 views

cevap

7

Kişisel deneyimlerime göre, memcached disk önbellek kadar hızlı değil. Bunun işletim sistemi diski IO'nun önbelleğe alınmasından kaynaklandığına inanıyorum, ancak memcached bir "ölçeklenebilir" önbellek sağlar, yani aynı önbellek verilerine erişen birden fazla sunucunuz varsa, ölçeklenir (özellikle memcached çok düşük bir CPU yüküne sahip olduğundan PHP'ye). 1'den fazla makinenin bir disk önbelleğine bir kerede erişmesine izin vermenin tek yolu, kesinlikle erişim hızını öldürecek olan ağ bağlantısıdır. Ayrıca, dosya önbelleğe alma ile ilgili endişelenmeniz gereken bir başka şey de, diskin doymasını önlemek için çöp toplamadır.

Site (ler) ölçeğiniz olarak, fikrinizi daha sonra değiştirmek isteyebilirsiniz, bu nedenle seçiminiz ne olursa olsun, bir önbellek sarıcısı kullanın, böylece yönteminizi kolayca değiştirebilirsiniz. Zend, bir good API sağlar.

2

Okumalar aynı hızda olacak (işletim sistemi sıklıkla erişilen dosyaları önbelleğe alacaktır) ... Fark yazılacak. Memcached ile, tüm yapmanız gereken ram yazmaktır. Ancak dosya depolama ile, biraz daha zor olur. Önbellekleme etkin yazdıysanız, bu kadar hızlı olacaktır. Ancak çoğu sunucu, elektrik kesintisi durumunda daha güvenilir yazmalar için kapattı (Pil yedeklenmiş önbelleği olmadığı sürece). Bu yüzden eğer bir yazma önbelleği kullanmıyorsanız, geri dönmeden önce diskin tamamlanmasını (sunucu sınıf sürücülerinde 5+ msn daha uzun sürebilir, muhtemelen daha yüksek dereceli masaüstü donanımı) gerektirecektir. Yani, yazma dosyaları memcached'den önemli ölçüde yavaş olabilir.

Ama başka bir havyar var. Dosyalarla, yazmak istediğinizde dosyayı kendiniz kilitlemeniz gerekir. Bu, iki süreç aynı dosyaya yazmayı denerse, yazımların seri olarak tamamlanması gerektiği anlamına gelir. Memcached ile, bu iki yazma bir sıraya itilir ve alınan sırayla olur, ancak yazım süreci (PHP) gerçek taahhüt için beklemek gerekmez ...

İlgili konular