Sugerencias de rendimiento para una gran base de usuarios [cerrado]

4

Estoy preparando un sitio con muchos usuarios (más de 100.000). Dado que la salida depende de la relación del usuario actual con algunos tipos de publicaciones y taxonomías personalizadas, un caché estático no servirá de mucho.

Además de usar una tabla separada para los usuarios y servir archivos estáticos de un dominio sin cookies, ¿qué otra cosa puedo hacer para el rendimiento?

Por ejemplo: ¿Debo usar InnoDB o MyISAM? ¿Consejos sobre índices?

Actualizar

Obviamente, no estaba lo suficientemente claro. Lo siento.

Todos los usuarios han iniciado sesión. Siempre. Nadie más puede ver más que la página de inicio. El sitio ofrece material pagado para cursos en línea.

Estoy buscando sugerencias relacionadas con una gran base de usuarios solamente. Las optimizaciones básicas de rendimiento general como la compresión, la carga lenta de scripts, sprites, etc. son útiles, pero no es para eso que estoy fuera.

    
pregunta fuxia 21.01.2011 - 16:14

3 respuestas

4

Puede usar "Caché total de W3" que no es un sistema de caché de archivos estáticos. Sin embargo, utiliza elementos como el almacenamiento en caché de código de operación, el almacenamiento de datos y el almacenamiento en caché de objetos para disminuir el tiempo de carga de la página. APC, u otro opcache, sería una buena adición a su servidor, así como usar un httpd ligero en lugar de Apache hinchado.

Forzar GZIP en los usuarios también se considera una buena idea, ya que la mayoría de las personas que no reciben archivos GZIP pueden recibir archivos GZIP. Los encabezados de solicitud pueden ser gestionados por firewalls, etc.

Sin embargo, el 80% de la carga de la página suele ser la parte frontal, por lo que es un lugar donde querrás trabajar. "W3 Total Cache" hace la concatenación de CSS y JavaScript, así como la reducción de los archivos. Es la mejor opción si tienes correctamente tus archivos JavaScript y CSS para que aparezcan solo en las páginas donde se necesitan. Sin embargo, la mayoría de los sitios no lo hacen, por lo que su configuración adicional requerida no es más que molesta. Además, la minificación de archivos generalmente genera errores, así que solo hago la concatenación de los archivos.

El uso de archivos estáticos de servicio en un dominio sin cookies ahorrará unos pocos ms, pero para obtener ahorros reales en la carga de la página, el uso de un CDN ahorrará aproximadamente 100 ms por elemento. El uso de múltiples dominios para servir los archivos aumentará la carga de la página para los navegadores más antiguos que tienen límites sobre la cantidad de solicitudes de archivos simultáneas que se pueden realizar por dominio.

Es posible que también desee considerar el uso de http://smush.it para guardar en el tamaño de las imágenes sin pérdida de calidad. ( enlace para ejecutar archivos locales a través de smushit. enlace para ejecutar imágenes en S3 a través de smushit.)

Se debe usar InnoDB si sus comentarios superan ampliamente a sus publicaciones. De lo contrario, MyISAM puede ser más rápido.

    
respondido por el Backie 21.01.2011 - 16:31
1

Tal vez pueda cambiar a mySQL 5.5 con el estándar predeterminado de innodb. También es un cambio utilizar un equilibrador de carga y separar las tablas de usuario en otra base de datos, servidor adicional.

    
respondido por el bueltge 04.02.2011 - 09:20
0

De acuerdo con lo que @Backie ha escrito.

wp-supercache también tiene soporte experimental para el almacenamiento en caché de objetos usando APC y CDN. He encontrado que el almacenamiento en caché de objetos puede resultar en un comportamiento extraño de (¿mal?) Complementos escritos.

Por lo general, MyISAM será más rápido a menos que tenga muchas escrituras (comentarios principalmente) ya que solo bloquea una página, no toda la tabla.

Asegúrese de activar el registro de consultas lentas en MySQL y verifique dónde están los cuellos de botella reales , y luego use EXPLAIN para determinar si necesita agregar índices, etc. Esta página es una introducción bastante buena si no ha utilizado EXPLAIN anteriormente.

El secuencia de comandos mysqltuner también puede ser útil para resolver dónde es posible que necesite ajustar su configuración de MySQL.

    
respondido por el anu 21.01.2011 - 18:18

Lea otras preguntas en las etiquetas