2008-10-15 8 views

Respuesta

8

No puedo responder a la pregunta de MySQL/PostgreSQL porque tengo una experiencia limitada con Postgres, pero mi proyecto de investigación de Masters fue sobre sitios web de alto rendimiento con CherryPy, y no creo que se sienta decepcionado si usa CherryPy para tu sitio. Puede escalar fácilmente a miles de usuarios simultáneos en hardware básico.

Por supuesto, lo mismo podría decirse de PHP, y no conozco ningún punto de referencia razonable que compare el rendimiento de PHP y CherryPy. Pero si se preguntaba si CherryPy puede manejar un sitio de alto tráfico con una gran cantidad de solicitudes por segundo, la respuesta es definitivamente sí.

2

Va a necesitar más datos. Jeff tenía algunos artículos sobre los mismos problemas y la respuesta fue esperar hasta que llegara un problema de rendimiento.

para empezar - ¿quién es el anfitrión y qué tienen disponible? ¿Cuáles son tus habilidades para el talento en casa? ¿Vas a contratar una firma externa? ¿Qué recomiendan? nuevo proyecto con un equipo dispuesto a aprender un nuevo marco?

Lo segundo es hacer algunas maquetas: cómo va a funcionar la interfaz. ¿Qué datos necesita cargar y persistir? la idea es mantener el tráfico entre la web y db hacia abajo. p.ej. sin páginas de conversación con muchas consultas. etc.

Una vez que tenga una mejor idea de los requisitos de datos y flujo, entonces trabaje en el diseño de la base de datos. hay muchas reglas a seguir, pero una de las mejores es seguir las reglas de normalización (sí, soy un chico de DB, ¿por qué?)

Ahora tienes un par de páginas compiladas: ejecuta tus pruebas. ¿Estás teniendo un problema? Sí, ahora mira qué es eso. ¿La página sirve o db tira? Mida y elija un curso de acción.

8

La configuración ideal sería cerca de this:

caching

En resumen, nginx es un servidor web rápido y ligero/front-proxy con un módulo único que nos deja que obtener los datos directamente desde memcached 's Tienda RAM, sin tocar el disco, o cualquier aplicación web dinámica. Por supuesto, si la URL de la solicitud no se almacenó en la memoria caché (o si ya ha caducado), la solicitud procede a la aplicación web como siempre. La parte genio es que cuando la aplicación web ha generado la respuesta, una copia de ella va a memcached, lista para ser reutilizada.

Todo esto es perfectamente aplicable no solo a las páginas web, sino a las consultas/respuestas AJAX.

En el artículo, los servidores 'back' son http, y específicamente hablan de mongrel. Sería aún mejor si la parte posterior fuera FastCGI y otro (¿más rápido?) Framework; pero es mucho menos crítico, ya que el equipo nginx/memcached absorbe la mayor parte de la carga.

tenga en cuenta que si su esquema de URL para el tráfico AJAX está bien diseñado (RESTO es mejor, en mi humilde opinión), puede poner la mayor parte de la DB en memcached, y cualquier POST (que pasará a la aplicación) puede actualizar preventivamente el caché

3

En la pregunta de DB, diría que PostgreSQL tiene una mejor escala y una mejor integridad de datos que MySQL. Para un sitio pequeño, MySQL podría ser más rápido, pero por lo que he escuchado, se desacelera significativamente a medida que crece el tamaño de la base de datos. (Nota: nunca he usado MySQL para una base de datos grande, por lo que probablemente deba obtener una segunda opinión sobre su escalabilidad.) Pero PostgreSQL definitivamente se adapta bien, y sería una buena opción para un sitio con mucho tráfico.

+0

hasta votado, gracias, creo que voy a ir con Python, PostgreSQL – daniels

2

Me gustaría ir con nginx + php + XCache + PostgreSQL

Cuestiones relacionadas