Ich habe einen Bericht von einem Redis-Benutzer erhalten und bin mir nicht sicher, was ich antworten soll, da ich kein Experte auf dem Gebiet von Linux und dessen Scheduler bin. Wir (als Redis-Projekt) müssen diese Art von Problemen jedoch besonders herausfinden In Zukunft werden wie bei Redis Cluster viele Redis-Instanzen gleichzeitig in einer einzigen Box ausgeführt. Also bitte ich hier um Hilfe.
Problem:
- Kernel: "Linux redis1 2.6.32-305-ec2 # 9-Ubuntu SMP Do 15. April 08:05:38 UTC 2010 x86_64 GNU / Linux"
- Viel freier Arbeitsspeicher, keine anderen Prozesse, die signifikante E / A-Vorgänge ausführen.
- Wichtig , läuft auf einer großen EC2-Instanz, nicht auf einem echten Server. Ich habe so etwas noch nie in einer nicht virtualisierten Umgebung gesehen. Die EC2-Instanz lautete: "17,1 GB Arbeitsspeicher mit hohem Arbeitsspeicher, 6,5 ECU (2 virtuelle Kerne mit jeweils 3,25 EC2-Recheneinheiten), 420 GB lokaler Instanzspeicher, 64-Bit-Plattform" .
Grundsätzlich wird das System nach dem Neustart einer großen Redis-Instanz so langsam, dass Sie nicht mehr auf der Shell tippen können. Wenn Redis eine Instanz lädt, verwendet es 100% der CPU (es lädt Daten so schnell wie möglich) und liest die dump.rdb-Datei nacheinander. Die E / A ist nicht besonders hoch, da das Laden an die CPU gebunden ist, nicht an die E / A.
Warum auf der Erde sollte eine Box mit zwei CPUs und viel RAM, keine vertauschten Dinge auf der Festplatte, grundsätzlich aufhören, mit dieser Arbeitslast zu arbeiten?
Ich habe den Eindruck, dass dies viel mit der Tatsache zu tun hat, dass es sich um eine EC2-Instanz handelt, die mit der verwendeten Virtualisierungstechnologie zusammenhängt, da ich jederzeit problemlos Redis- Datensätze mit 24 GB in meine Box lade (auch mit anderen Instanzen von Redis) Laufen mit hoher Last).
Danke für jeden Hinweis!
Salvatore
Bearbeiten : Hinzufügen von Feedback, das ich von Twitter erhalten habe:
von @ezmobius: @antirez Versuchen Sie es zuerst mit / mnt oder den lokalen kurzlebigen Laufwerken, um festzustellen, ob die EBS-Schwäche vorliegt. 2. Stellen Sie sicher, dass es nicht die "erste Schreibstrafe" ist (googeln), und wenn ja, dann Sie müssen zuerst Nullen über die Festplatte schreiben.
von @dvirsky: @antirez Ich führe viele Redis-Instanzen auf genau solchen ec2-Knoten aus. Ich habe eine gewisse Verlangsamung bei bgsave bemerkt, aber nicht dieses Phänomen.