Frage

Für eine Website wie reddit mit vielen Auf- / Ab-Stimmen und vielen Kommentare pro Thema, was soll ich mit gehen?

Lighttpd / Php oder Lighttpd / CherryPy / Genshi / SQLAlchemy?

und für Datenbank was wäre besser skalieren / sein schnellste MySQL (4.1 oder 5?) Oder PostgreSQL?

War es hilfreich?

Lösung

Ich kann nicht auf die MySQL / PostgreSQL Frage sprechen, wie ich Erfahrung mit Postgres beschränkt haben, aber meine Masters Forschungsprojekt war über High-Performance-Websites mit CherryPy, und ich glaube nicht, dass Sie enttäuscht sein werden, wenn Sie verwenden CherryPy für Ihre Website. Es kann leicht zu Tausenden von Benutzern gleichzeitig auf handelsüblicher Hardware skalieren.

Natürlich könnte das gleiche für PHP sagen, und ich weiß nicht von irgendwelchen angemessenen Benchmarks zu vergleichen PHP und CherryPy Leistung. Aber wenn Sie mich fragen, ob CherryPy eine stark frequentierte Website mit einer großen Anzahl von Anfragen pro Sekunde verarbeiten kann, ist die Antwort eindeutig ja.

Andere Tipps

Das ideale Setup wäre die Nähe von diese :

Caching

Kurz gesagt, nginx ist eine schnelle und leichte Webserver / Front-Proxy mit einem einzigartigen Modul, der uns sie Daten direkt von fetch memcached 's RAM zu speichern, ohne die Platte zu trifft oder über dynamische webapp. Natürlich, wenn die URL der Anfrage wurde nicht bereits im Cache gespeichert (oder, wenn es abgelaufen ist), die Anfrage weiter zu dem Webapp wie gewohnt. Das Genie ist, dass, wenn die Webapp die Antwort erzeugt hat, eine Kopie davon Memcached geht, bereit, wieder verwendet zu werden.

Das alles ist perfekt nicht nur auf Web-Seiten, sondern auf AJAX-Abfrage / Antworten.

in dem Artikel der ‚Zurück‘ Server sind http und speziell über Mischlings sprechen. Es wäre noch besser, wenn der Rücken ist FastCGI und andere (schneller?) Rahmen; aber es ist viel weniger kritisch, da die nginx / Memcached-Team den größten Teil der Last zu absorbieren.

beachten Sie, dass, wenn Ihr URL-Schema für den AJAX-Verkehr ist gut gestaltet (REST ist am besten, IMHO), können Sie die meisten der DB direkt in Memcached setzen können, und jede POST (die die App passieren) kann präventiv aktualisiert die Cache.

Auf die Frage DB, würde ich sagen, PostgreSQL besser skaliert und hat Integrität bessere Daten als MySQL. Für eine kleine Website MySQL könnte schneller sein, aber von dem, was ich gehört habe es deutlich verlangsamt, wie die Größe der Datenbank wächst. (. Hinweis: Ich habe noch nie MySQL für eine große Datenbank verwendet, so sollten Sie vielleicht eine zweite Meinung über seine Skalierbarkeit erhalten ) Aber PostgreSQL skaliert auf jeden Fall gut, und wäre eine gute Wahl für einen hohen Verkehr sein Website.

Möchten Sie weitere Daten benötigen. Jeff hatte ein paar Artikel über die gleichen Probleme und die Antwort war zu warten, bis Sie ein Leistungsproblem betroffen.

beginnen - wer Hosting und was haben sie zur Verfügung? was ist Ihre Sets Geschick im Haus Talent? Werden Sie die Einstellung eine externe Firma werden? Was empfehlen sie? neues Projekt w / ein Team bereit, einen neuen Rahmen zu lernen?

2. Sache ist, einige Mockups zu tun - wie ist die Schnittstelle zur Arbeit zu gehen. Welche Daten braucht es zu laden und beharren? die Idee ist, den Verkehr zwischen der Bahn und DB-Seite nach unten zu halten. z.B. keine gesprächig Seiten mit vielen Abfragen. etc.

Wenn Sie eine bessere Vorstellung von den Datenanforderungen und Fluss haben - dann auf dem Datenbank-Design arbeiten. es gibt viele Regeln zu folgen, aber eine der besseren ist Normalisierungsregeln (ja ich bin ein db Kerl warum?)

folgen

Jetzt haben Sie ein paar Seiten bauen - Ihre Tests laufen. haben Sie ein Problem? Ja, nun einen Blick auf, was es ist. Seite Portion oder db zieht? Messen Sie dann wählen Sie einen Kurs der Aktion.

ich mit nginx + PHP + xcache + postgresql

gehen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top