Magefinder – die bessere Suche für Magento (Teil 4)

Wichtig bei einer Suche ist die Performance. Es soll in möglichst kurzer Zeit das Richtige gefunden werden. Natürlich war es auch für mich interessant, “wie schnell” Magefinder sein kann. CloudSearch allein liefert Ergebnisse, je nach Komplexität der Suchanfrage, sehr schnell – meist im Bereich unter 10ms. Hier kommt dann noch die Zeit für den Request selber – also die Verbindung zu CloudSearch und die Übertragung der Daten – hinzu.

Bei Magefinder gibt es noch den API-Layer, der einiges an Arbeit zu erledigen hat. Der große Vorteil an der Konstellation mit EC2 Instanzen sind die kurzen Wege innerhalb einer Amazon Region. Das intelligente DNS System von Amazon kann die Anfragen innerhalb einer Region auch “intern” weitergeben, womit die Verbindungszeiten zwischen EC2 Instanzen und CloudSearch vernachlässigbar kurz sind. Dazu wollte ich selber Messungen durchführen und hier kurz beschreiben.

Aufgabenstellung & Testumgebung

Es galt anhand von Beispiel-Suchanfragen in einem Testaufstellung die Antwortzeiten und den Durchsatz zu messen. Dazu wurden 3 Magento-Shops mit ihren Produkten in Magefinder indiziert. In Summer ergab dies 18.677 Produkte im Index. Weiters wurden die bisher gespeicherten Suchanfragen aus der Tabelle “catalogsearch_query” ausgewertet und die fertige Url für die Anfrage bei Magefinder in einem Textfile erstellt. In Summe waren das für alle 3 Shops eine Liste von 56.413 Urls. Hier gilt es zu erwähnen, dass auch Suchanfragen aus der Tabelle genommen wurden, die keine Treffer hatte. Sofern diese Begriffe auch in Magefinder keinen Treffer landen, werden sie relativ schnell beantwortet – die Zeit für die Datenübertragung sinkt gegen null. Auf der Seite von Magefinder hatte ich ein vollständiges Set-up von Suchinstanzen hinter einem Elatstic-Loadbalancer mit Auto-Scaling.

Die Testmethode

Verwendet wurde das Tool “Siege“, welches ganz einfach auf einer Ubuntu Instanz installiert werden kann. Dazu wurde das Textfile mit den Urls konfiguriert uns los ging’s.

Ich habe den Test unter verschiedenen Einstellungen laufen lassen. Der Loadbalancer gemeinsam mit dem Autoscaling haben sauber hochskaliert und den Traffic aufgenommen. Die CloudSearch Instanz hat im Hintergrund die Anfragen beantwortet und ebenfalls die Suchinstanzen intern nach Aufwand erweitert.

 Das Ergebnis

  • Suchanfragen: 3.507 in 15 Minuten
  • Trefferquote:
    • kein Treffer: 909
    • 1 oder mehr Treffer: 2.598
  • Suchzeit: zwischen 3ms min und 145ms max
  • Server-Antwortzeit:
    • Minimum: 34ms
    • Maximum: 396ms
    • Durchschnitt: 59ms
    • Quantile (90%): 97ms

Die Verteilung der Suchanfragen sieht wie folgt aus. Auf der X-Achse ist die Anzahl der Treffer verzeichnet. Auf der Y-Achse findet man dem Mittelwert der Antwortzeit für diese Anzahl an Treffern.

In Summe sollte nun ersichtlich sein, dass mit Magefinder eine schnelle und zuverlässige Suche ermöglicht werden kann. Die Qualität der Suchergebnisse muss jeder Shopbetreiber für sich selber herausfinden. Aber das kann mit dem Demo-Account ganz einfach getestet werden.

Die Kommentarfunktion ist geschlossen.