2009-11-17 5 views
5

Estoy involucrado en un proyecto que terminará creando alrededor de 10 millones de páginas nuevas en un sitio existente. El sitio y el nuevo proyecto están construidos con CodeIgniter y se conectan a MySQL.Almacenamiento en caché de un gran número de páginas en el sitio php

Nunca antes me he ocupado de un sitio de este tamaño, y me preocupa cómo debemos manejar el almacenamiento en caché. ¿Alguien ha tratado con el almacenamiento en caché en un sitio PHP de este tamaño que podría darme algunos consejos? Estoy acostumbrado al sistema de almacenamiento en caché de CodeIgniter y similares, pero la cantidad de archivos de caché que me crearían me preocupa.

Cualquier sugerencia sería apreciada.

Respuesta

1

Hay varias capas de almacenamiento en caché disponibles para PHP y CodeIgniter, pero no debe preocuparse por la cantidad de archivos en caché en un servidor Linux estándar (varios sistemas de archivos pueden manejar cientos de millones de archivos por punto de montaje) . Pero para elegir su método de almacenamiento en caché, debe medir cuidadosamente.

Opciones:

  • Código de Operación de almacenamiento en caché (Zend, eAccelerator, and more)
  • CodeIgniter vista almacenamiento en caché (configurados por visión)
  • CodeIgniter leer caché
  • almacenamiento en caché web general (more info)
  • Optimice su base de datos (more info)

(y así sucesivamente)

Además, puede mejorar los cachés de archivos mediante el uso de sistemas de archivos de memoria y tablas en memoria.

La verdadera pregunta es, ¿cómo elegir estrategias de almacenamiento en caché? Planificación de capacidad. Modela su sistema (usuarios, cuentas, páginas, archivos), simula, mide y agrega cachés basados ​​en las mejores teorías. Medir de nuevo. Produzca nuevas teorías y medidas hasta que tenga enfoques que se ajusten a su escala deseada.

En mi experiencia, ver el almacenamiento en caché y el almacenamiento en caché web son una gran ventaja para los sitios ampliamente leídos (WPSuperCache, por ejemplo). El almacenamiento en caché de códigos de operación (y otras formas de minimización) son útiles para sitios muy dinámicos, como lo es el ajuste del rendimiento de la base de datos.

2

No he hecho nada en esa escala, pero no veo ningún problema con el almacenamiento en caché basado en archivos, siempre y cuando el mecanismo de almacenamiento en caché no sea completamente tonto, y esté utilizando un sistema de archivos moderno. La distribución de archivos de caché en un árbol de directorios es lo suficientemente inteligente.

Si estás preocupado, está bien. Por supuesto, sugeriría escribir un borrador sobre el mecanismo integrado de CI, para que pueda cambiarlo fácilmente por otra cosa (como Zend_Cache, posiblemente con un servidor memcached grueso o algún sistema más inteligente basado en archivos de su propio diseño) .

0

FYI: Si el sistema se ejecuta en un servidor de Windows: Windows puede (¿podría?) Máx. tener aprox. 65,000 archivos en una carpeta, incluidas las carpetas de caché. No estoy seguro de si este límite superior se ha solucionado en versiones más recientes.

0

Todos los tipos grandes usan APC. El número de páginas web no es relevante. El número relevante es el número de visitas (páginas vistas). Y si diseña para acelerar las máquinas de Windows.

Cuestiones relacionadas