2009-11-17 9 views
5

Sono coinvolto in un progetto che finirà per creare circa 10 milioni di nuove pagine su un sito esistente. Il sito e il nuovo progetto sono costruiti con CodeIgniter e si connettono a MySQL.Memorizzazione nella cache di un numero elevato di pagine nel sito php

Non ho mai avuto a che fare con un sito di queste dimensioni e sono preoccupato di come gestire il caching. Qualcuno ha avuto a che fare con la memorizzazione nella cache di un sito PHP di queste dimensioni che potrebbe darmi alcuni suggerimenti? Sono abituato al sistema di caching CodeIgniter e simili, ma il numero di file cache che creerebbe mi preoccupa.

Qualsiasi suggerimento sarebbe apprezzato.

risposta

1

Esistono diversi livelli di memorizzazione nella cache disponibili per PHP e CodeIgniter, ma non è necessario preoccuparsi del numero di file memorizzati nella cache su un server Linux standard (vari file system possono gestire centinaia di milioni di file per punto di montaggio) . Ma per scegliere il metodo di memorizzazione nella cache, è necessario misurare con attenzione.

Opzioni:

  • Opcode caching (Zend, eAccelerator, and more)
  • CodeIgniter vista caching (configurati per view)
  • CodeIgniter leggere query nella cache
  • Generale web caching (more info)
  • Ottimizza il tuo database (more info)

(e così via)

Inoltre, è possibile migliorare le cache dei file utilizzando i file system di memoria e le tabelle in memoria.

La vera domanda è, come si scelgono le strategie di caching? Pianificazione della capacità. Si modella il sistema (utenti, account, pagine, file), si simula, si misura e si aggiungono le cache in base alle migliori teorie. Misura di nuovo. Produce nuove teorie e misurazioni finché non hai approcci che si adattano alla tua scala desiderata.

Nella mia esperienza, vista la memorizzazione nella cache e la memorizzazione nella cache Web sono un grande vantaggio per i siti di lettura estesa (WPSuperCache, ad esempio). La memorizzazione nella cache di Opcode (e altre forme di min-imisation) sono utili per siti molto dinamici, come l'ottimizzazione delle prestazioni del database.

2

Non ho fatto nulla su quella scala, ma non vedo un problema con il caching basato su file finché il meccanismo di memorizzazione nella cache non è completamente stupido e si sta utilizzando un moderno filesystem. La distribuzione di file di cache in un albero di directory è abbastanza intelligente.

Se sei preoccupato, va bene. Ovviamente, suggerirei di scrivere un wrapper attorno al meccanismo integrato di CI, in modo da poterlo sostituire facilmente con qualcos'altro (come Zend_Cache, possibilmente con un potente server memcached, o un sistema più intelligente basato su file del proprio progetto) .

0

FYI: Se il sistema funziona su un server Windows: Windows può (potrebbe?) Max. avere ca. 65.000 file in una cartella, incluse le cartelle della cache. Non sono sicuro che questo limite superiore sia stato corretto nelle versioni più recenti.

0

Tutti i ragazzi grandi usano APC. Il numero di pagine Web non è rilevante. Il numero pertinente è il numero di visite (pagine visualizzate). E se progettate per speed ditch le macchine Windows.

Problemi correlati