2016-09-04 3 views
0

Ich lief MemSQL-Geschwindigkeitstest zeigt 638K Einsätze pro Sekunde (in der Web-UI).MemSQL Geschwindigkeitstest VS dbbench Geschwindigkeitstest

Auch ich bin dbbench Benchmark-Tool laufen, um die gleiche Last zu simulieren, aber ich bekomme einen Durchsatz von nur 20K Einsätze pro Sekunde. (dbbench wird auf demselben Computer wie MemSQL ausgeführt)

Ich bin verwirrt, gibt es etwas, das ich vermisse?

Hier ist, wie ich dbbench laufen:

dbbench --host=127.0.0.1 --port=3306 dbbench.ini* 

dbbench.ini:

[setup] 
query=CREATE DATABASE IF NOT EXISTS speed_test 
query=CREATE TABLE IF NOT EXISTS speed_test.tbl (id INT AUTO_INCREMENT PRIMARY KEY, val INT) 

[teardown] 
query=DROP DATABASE speed_test 

[inserts] 
query=insert into speed_test.tbl (val) values(5) 
concurrency=10 

Antwort

0

Lauf einwertig Einsätze wird viel langsamer als Multi-Einsätze und Gleichzeitigkeit 10 ist viel zu niedrig um auch den Cluster zu sättigen. Der Engpass für Ihre Arbeitslast in der dbbench-Konfiguration ist hier bei all diesen Rundreisen, die nur wenig Arbeit in der Datenbank leisten.

Versuchen:

  • mehr Werte in jede Insert-Anweisung Dosieren
  • die Parallelität zu erhöhen
+0

I 100 Zeilenwerte in 1 Einsatz batched haben, Durchsatz hat zu 100K/s erhöht, jedoch Beim Vergleich mit MySQL in der Speichertabelle scheint eine einzelne Einfügung für eine Zeile ungefähr 100 mal schneller zu sein. Warum das? – user2315061

+0

Ein Grund liegt wahrscheinlich an der zusätzlichen Netzwerklatenz in MemSQL, da es sich um eine verteilte Datenbank handelt und die Einfügung vom Client zum Aggregator zum Blatt gehen muss. –