1.000.000 Nodes
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-13034.jpg)
am 10.10.2011 - 17:59 Uhr in
Hat jemand eine Drupal Installation mit einer Datenbank in der Größenordnung von 1.000.000 Nodes laufen?
Was sind da die Serveranforderungen? Welchen Hosting-Service nutzt ihr?
- Anmelden oder Registrieren um Kommentare zu schreiben
Allein auf Basis der Anzahl
am 10.10.2011 - 18:04 Uhr
Allein auf Basis der Anzahl der Nodes kann man ebensowenig eine Geschwindigkeitsaussage treffen wie auf Basis der Anzahl von Pins eines Prozessors. Performance ergibt aus aus einer ganzen Vielzahl von technischen Parametern außerhalb von Drupal und schlussendlich auch durch den Aufbau der Drupal-Site selbst.
Willst du gleich zu Beginn mit 1 Mio. Nodes starten?
Nehmen wir mal ein aktives
am 10.10.2011 - 22:45 Uhr
Nehmen wir mal ein aktives Forum mit 1000 Usern, die jeden Tag mehrere Themen anschauen und kommentieren.
Das ist natürlich noch immer keine konkrete Zahl an Datenbankzugriffen und Traffic etc., aber wie ist so der grobe Rahmen? Was für eine Art des Hostings muss es sein? Mit einem 0815 shared Hosting kommt man wahrscheinlich nicht weit. Muss es ein eigener Server sein?
Beschreibt doch mal die Größe eurer Drupal-Projekte und die verwendete Hostinglösung.
Es gibt eine Site mit 1M Nodes
am 13.10.2011 - 11:33 Uhr
frag da doch mal nach ;)
http://drupal.org/node/1000000
1.000.000 kein Problem
am 13.10.2011 - 14:22 Uhr
Hallo zusammen,
für Drupal ist es eher weniger entscheidend, wieviele Nodes es gibt, sondern wie die Seite aufgebaut ist und wie das Rollenkonzept ausgearbeitet ist (je mehr Berechtigungsbäume es gibt desto mehr muss Drupal abfragen).
Ich habe vor knapp 3 Jahren ein Intranet für ein Unternehmen umgesetzt (mehr als 25k Mitarbeiter). Bereits bei Start hatte das System mehr als 50k Nodes. Aktuell sind mehr als 250 Teilmodules im Einsatz und die Seite hat derzeit mehr als 2,4 Millionen Nodes (Grund dafür ist sowohl Forum als auch integriertes MassenBlog-System).
Der Community-Teil ist logischerweise langsamer geworden als es noch zu Beginn der Fall war (Anzeige Forum muss ja ne Menge auslesen).
Dem entgegensteuernd läuft das System (bei durchschnittlich 2k-4k angemeldeten Nutzern) in einem Cluster mit logischerweise Vorgeschaltetem Loadbalancer bei Strato.
Ganz wichtig für Dich ist aber die Aussage, Ja Drupal schafft mehr als 1.000.000 Nodes und ja es ist abhängig von der Anzahl Diener gleichzeitig eingeloggten Nutzer.
Wenn Du sicher gehen willst und vor allem flexibel bleiben willst, besorge Dir einen Rootserver bei den größeren Anbietern in Deutschland, dann kannst du bei Performanceeinbrüchen auch sehr schnell reagieren und einen Serverumzug einleiten (selbst oder durch Deinen Hoster (gegen Entgeld)).
Wenn Du mehr Fragen hast, z. B. zu genauen Serverwerten etc. Frage hier ruhig dann gehe ich genauer auf Fragen ein aber logischerweise hier im Thread damit die Coummity auch etwas davon hat.
Tschaui Bjoern
Cache
am 13.10.2011 - 14:29 Uhr
Das ist im Endeffekt immer eine Frage von Caching. Drupal komplett ohne jeden Cache laufenzulassen würde kein Server bewältigen. Von daher solltest du schauen, was du mit Dingen wir Varnish und Memcached sowie einem CDN bewältigen kannst. Einfach nur 1.000.000 Nodes sind entsprechend Primarykeys in der DB und das bewältigt ein MySQL z.B. leicht. Aber diverse Abfragen und Joins plus PHP sind dann eine ganz andere Größenordnung. Ich würde bei der Größe und 1.000 Angemeldeten Usern am Tag schon davon ausgehen, das du eine Cluster Lösung fahren solltest. Wenn du aber eine schlaue Cache Version baust, die die Seiten statisch ausliefert, dann reicht ein 0815 Server locker aus.
Ich mache mir auch gerade
am 14.11.2011 - 20:04 Uhr
Ich mache mir auch gerade Gedanken über die Performance von Community-Seiten (z.B. mit Forum) unter Drupal 7. Ich habe aktuell kleinere Drupal 7 Seiten, welche nur mit dem D/ eigenen Caching arbeiten. Normalerweise geht der Seitenaufbau flott, aber es gibt immer mal einzelne Anfragen, welche gleich mal mehrere Sekunden (bis zu 10+ Sekunden!) dauern. Dabei handelt es sich aber um Seiten, welche lediglich von Gästen (und evtl. dem Admin als eingeloggtem User) besucht werden.
In diesem Zusammenhang möchte ich mal bald das Boost-Modul ausprobieren, da es mir nach einer einfachen (und hoffentlich trotzdem effizienten) Verbesserungsmöglichkeit aussieht. Die entsprechenden Seiten bestehen aus statischen Inhalten und z.B. einem eher unregelmäßig geführten Blog.
Da ich nun aber schon teilweise bei diesen Seiten Performanceprobleme festgestellt habe, bekomme ich natürlich bei eintsprechenden Community-Seiten (aktivere Blogs oder Forum) schon bedenken. Wie kann man den Mitgliedern (angemeldete User) einer entsprechenden Drupalseite vernünftige Performance beim Seitenaufbau bieten? Ladezeiten von bis 2 Sekunden wären ja schon ok, aber entsprechende Aufrufe mit über 10 Sekunden sind wohl eher nicht zumutbar.
Von meiner Suche her bekannt sind mir Memcache oder APC, jedoch habe ich hier keine genaueren Informationen wie sich dies auf Community-Seiten ca. auswirken wird und würde für die Einrichtung eine gute Anleitung benötigen, da sicherlich auch dir korrekte Konfiguration einen entsprechenden Einfluss auf die Performance hat.
Aktuell laufen die einfachen und eher statischen Seiten auf einem vServer von Server4you, wobei mir dieser nicht allzu leistungsstark erscheint und auch das OS eigene Caching nicht wirklich zu nutzen im VM Container. Ein Wechsel zu einem anderen Provider (und gegebenenfalls einer anderen Virtualisierungslösung wird auch gerade überdacht).
3GHz CPU
1GB RAM (FlexRAM 2GB)
Produktdetails:
http://www.server4you.de/vserver/vserver-details.php?products=0
Vielleicht kann hier mal jemand Erfahrungswerte von Hostern und Caching-Methoden und deren Erfolg mitteilen?
Tipps
am 16.11.2011 - 13:12 Uhr
Hi
das Thema ist einfach zu komplex für mal eben so. Boost ist auch eine Sache, die zwei Seiten hat. Auf der einen ist es super schnell. Auf der anderen ist wirklich harter Cache. Das kann auch Probleme mit sich bringen. Schau dir mal XDebug Profiling an und was man damit machen kann. Und sonst gibt es eine vielzahl an Caching Schichten, mit denen du arbeiten kannst. Theoretisch kannst du auch auf Boost verzichten und mit einem Proxy wie Varnish arbeiten. Einfach google bemühen. Da gibt es endlos Informationen dazu.
Natürlich gibt es viele
am 16.11.2011 - 13:26 Uhr
Natürlich gibt es viele Informationen. Habe mir auch einige Artikel angeschaut bzw. habe noch einige in meiner Liste. Da dieses Thema aber so komplex ist, bin ich mir noch unsicher, welche Möglichkeiten wirklich gut und sinnvoll für meine Anwendung sind.
Die eine Seite sind eher statische Seiten (gleichbleibende Inhalte, evtl. etwas JS mittels jQuery), aber auf der anderen Seite würde ich gerne eine kleine Community-Seite (Blog, Forum, einige Inhalte) aufbauen.
Bei den statischen Seiten sollte Squid/ Vanish als Frontside Proxy eine einfache Möglichkeit sein. Vergleich zu Boost habe ich nicht, nur das ich für dieses Modul einige Anpassungen vornehmen müsste in den Drupal Einstellungen.
Da ich aber bereits in einer Entwicklungsseite mit Login, Forum und Blog - sogar mit nur wenigen Nodes! - Performanceprobleme spüre (zeitweise, einzelne Aufrufe), bin ich hier doch sehr skeptisch. Wie wird das hier oder auf drupal.org gelöst, wo es ja schon einige Beiträge in den Foren gibt...?
Vielleicht geht es erstmal gar nicht um das optimale Caching, sondern eher um eine grundlegende Verbesserung der Performance besonders für angemeldete User.
Ich habe nun mal in einer
am 20.11.2011 - 20:55 Uhr
Ich habe nun mal in einer Testinstallation auf meinem vServer einige der Module ausprobiert.
Dabei handelt es sich um eine Seite mit einigen aktivierten Modulen, 1 Forum, 2 Nodes und 2 Usern (1 aktiver, 2. ist ein Dummy-User). Ladezeiten schwankten mit Varnish und File Cache Modul zwischen 700ms und 1,2s. Ohne Caching zwischen 700ms und 3s. Aber es gab auch immer mal Ausnahmen mit 10+ oder gar 23+ Sekunden...
Hier habe ich nur einen schnellen Test gemacht und weiß nicht, in wie weit die Boost-Konfiguration gut oder schlecht war. Da tendiere ich schon eher zu einem Frontside Proxy mit Varnish.
Hier hat es erstmal lange gedauert, bis es überhaut funktioniert hat. Problem war ein (gut) funktionierenden default.vcl zu bauen bzw. finden. Danach hat man in der Regel Performanceverbesserungen bei Gästen (nicht bei angemeldeten Usern) festgestellt. Wobei ich eigentlich mit einer größeren Verbesserung gerechnet hatte...
Zusätzlich wurde das Varnish und Expire Modul installiert. In wie weit das Expire Module sich positiv auswirkt, kann ich nicht genau sagen, soll aber dafür sorgen, dass geänderte Seiten gezielt neu geladen werden können und nicht der komplette Cache durch eine Änderung abläuft. Sollte auch einen Vorteil in der Performance geben, wenn es Änderungen auf einer Seite gibt.
Hier habe ich einfach schnell das Modul und im OS APC installiert (Apache reload gemacht, Änderungen in settings gemacht) und geschaut, ob das Verbesserungen bringt. Stark spürbare Vorteile sind auch erstmal ausgeblieben. Auch in Verbindung mit Varnish getestet. Hat alles nicht so überzeugt, wie ich ursprünglich gehofft habe.
Das file_cache Modul war sehr einfach zu installieren und hat danach die entsprechenden Dateien im Filesystem abgelegt. Um das ganze entsprechend zu beschleunigen habe ich hier ein tmpfs im OS angelegt und für dieses Verzeichnis eingebunden. Das war insgesamt sehr einfach und aufgrund des tmpfs wirkt das für mich erstmal subjektiv sehr performant und gut.
Der vServer
Bei meinem Test habe ich auch ein Auge auf den vServer geworfen. Dabei ist aufgefallen, dass weder CPU und Disk I/O sehr auffällig oder hoch war. Komischerweise ist dann zeitweise die "top"-Ansicht eingefroren. Mir scheint also auch als wäre der vServer von server4you ebenfalls ein Teil meines Performanceproblems und somit meine Tests aus davon abhängig...
Kombination von Möglichkeiten
File_Cache gefällt mir erstmal sehr gut. Mit einem tmpfs sollte das recht gut arbeiten, aber macht es hier auch Sinn weitere Möglichkeiten wir Varnish davor oder gar ein Boost damit zu kombinieren?
Interessant wären auch Möglichkeiten, welche sich auf angemeldete Benutzer einer Drupalseite auswirken. Dabei ist natürlich auch ein Punkt, dass die eingesetzten Caching-Methoden möglichst gut miteinander arbeiten.
Vielleicht hat ja bereits jemand mit diesen Modulen gearbeitet und einige weiteren Erkenntnisse erlangt?
Mir ist auch aufgefallen, dass z.B. ein Aufruf direkt an die Drupalseite nicht zwingend langsamer und manchmal sogar schneller ist als selbiger Aufruf über einen vorgeschalteten Varnish.