Php sitedeki sayfaların çok sayıda önbelleğe

3 Cevap php

Varolan bir sitede yaklaşık 10 milyon yeni sayfalar oluşturarak sona erecek projeye dahil ediyorum. Site, ve yeni proje, CodeIgniter ile inşa edilmiş ve MySQL bağlanıyorsunuz.

Ben daha önce bu boyutta bir site ile ele hiç ettik ve biz önbelleğe alma işlemek gerektiği konusunda endişeliyim. Herkes bana bazı işaretçiler verebilir bu büyüklükte bir PHP sitede önbelleğe alma ile vurmuştur? Ben CodeIgniter önbellek sistemi ve benzer alışkınım ama endişeleri beni yaratacak önbellek dosyaları sayısı.

Herhangi bir öneriniz mutluluk duyacağız.

3 Cevap

Orada PHP ve CodeIgniter mevcut önbelleğe çeşitli katmanları vardır, ancak standart bir linux sunucuda önbelleğe dosya sayısına (çeşitli dosya sistemleri bağlama noktasının başına dosyaları milyonlarca yüzlerce işleyebilir) hakkında endişelenmenize gerek olmamalıdır. Ama önbelleğe alma yöntemi seçmek için, dikkatle ölçmek gerekir.

Seçenekler:

  • Opcode önbelleğe alma (Zend, eAccelerator, and more)
  • CodeIgniter görünümü önbelleğe (görüntü başına yapılandırılmış)
  • CodeIgniter sorgu önbelleğe oku
  • Genel web önbellekleme (more info)
  • Lütfen veritabanı optimize (more info)

(Ve benzeri)

Ayrıca, bellek dosya sistemlerini kullanarak ve bellek tabloları ile dosya önbelleklerini artırabilir.

Asıl soru nasıl önbelleğe alma stratejileri almak mı, nedir? Kapasite planlaması. Eğer sistem (kullanıcılar, hesapları, sayfaları, dosyalar), simüle, ölçü, model ve iyi teorilere dayalı önbelleklerini ekleyin. Tekrar ölçün. İstediğiniz ölçek uygun yaklaşımları kadar yeni teoriler ve ölçümler üretin.

Benim deneyim, görünüm önbelleğe alma ve web önbellekleme çok okunan siteleri (örneğin WPSuperCache) için büyük bir kazanç vardır. Veritabanı performans ayarlama gibi opcode önbelleğe alma (ve min-imisation diğer formları), ağır dinamik siteler için yararlıdır.

Ben bu ölçekte bir şey yapmadım, ama sürece önbelleğe alma mekanizması tamamen aptal değil gibi dosya tabanlı önbelleğe alma ile ilgili bir sorun görmüyorum, ve modern bir dosya sistemi kullanıyorsunuz. Bir dizin ağacı boyunca önbellek dosyaları dağıtmak yeterince akıllı.

Eğer endişeli iseniz, bu iyi. Kolayca (muhtemelen bir etli memcached sunucusu ile Zend_Cache, veya kendi tasarım bazı akıllı dosya tabanlı sistemi gibi) başka bir şey için dışarı takas böylece Tabii ki, ben, CI yerleşik mekanizma etrafında sarıcı yazma öneririm .

Bilginize: Sistem bir Windows sunucu üzerinde çalışıyorsa: Windows olabilir (? Olabilir) max. yaklaşık var. Önbellek klasörler dahil bir klasörde 65.000 dosyaları. Emin olun bu üst limit yeni sürümlerinde sabit olmuştur değilse.