Frage

Die Servervirtualisierung ist eine große Sache in diesen Tagen, so dass ich bei der Arbeit beauftragt, einige unserer Software auf einem virtualisierten Server zu installieren und sehen, was passiert. Lange Rede kurzer Sinn: ein rsync Transfer prompt bringt den virtualisierten Server in die Knie. Die Virtualisierungs-Host ist eine bullige Maschine mit keiner anderen Last; Ich glaube nicht, dies geschehen soll. Top zeigt eine hohe Belastung im Durchschnitt, und cpu iowait in der Nähe von 100%. Es gibt einen riesigen Engpass irgendwo.

Ich bin eher ein Programmierer als ein Sysadmin, fehlt mir das Wissen darüber, wie über die Festsetzung dieses außerhalb von zufälligen googeln zu gehen. Ich vermute, dass ich in dieser nicht allein bin.

Was mag ich hier zu sehen ist, allgemeine Hinweise zur Virtualisierung und Verweise auf gute Artikel und andere Ressourcen, die ich und andere verwenden könnten sie zu erziehen.

  • Welche Tools (auch Standard-Unix-Tools) verwendet werden können, um Engpässe zu identifizieren?
  • Welche Metriken befolgt werden sollten Dinge, um sicherzustellen, reibungslos?
  • Welche Dinge effizient virtualisiert werden?
  • Welche Art von Setups sind zum Scheitern verurteilt?

Ich entschuldige mich die Weite der Frage. Ich habe einfach nicht das Wissen nützliche spezifische Fragen dazu zu stellen.

Edit: Mehr über mein spezielles Problem:

  • XAN Paravirtualisierung, 3 x Gast CentOS
  • Alle Gäste auf lokalen SCSI-Festplatten gibt es einen vollständig Hardware-RAID-Controller
  • rsyncd auf 1 Gast-Betriebssystem ausgeführt, die Übertragung von einem entfernten nicht virtualisierten Server über 100Mbps LAN initiiert

Wie ich schon sagte, ich kann wirklich nicht eine Tonne von nützlichen Daten zur Verfügung stellen. Ich erwarte nicht wirklich eine direkte Lösung für dieses Problem zu erhalten, würde ich mit Zeigern auf glücklich sein, wo die Skillset mit dem Bau erforderlich ist, um besser, diese Art von Problemen zu verstehen.

War es hilfreich?

Lösung

Ich werde dies in einem Kommentar setzen, aber ich denke, es ist in den offenen nützlicher ist:

Könnten Sie weitere Details zu Ihrem Setup hinzufügen:

  • Welche VM-Server?
    (VMware Server, VMware ESX, MS VirtuellerServer, MS Hyper-V, etwas anderes?)
  • Welche OS für den Gast (s)?
    (Windows, Linux, 32-bit, 64-bit?)
  • Wo sind die Gäste (s) gespeichert?
    (Lokale Festplatte oder auf einem NAS oder SAN?)
  • Wurden rsyncing Sie zwischen den Gästen auf dem gleichen VM-Server oder zwischen einem Gast und einem physischen Server?
  • Wenn über ein Netzwerk, wie schnell ist das Netzwerk?

Leistungsoptimierung in jeder Umgebung ist 90% Sammeldaten und 10% Analyse. Virtualisierte Umgebungen haben mehr Variablen als physikalische Umgebungen zu betrachten, aber noch wichtiger ist, sie haben eine andere Antwort-Kurve als physische Umgebungen. Einige Anwendungen können eine bessere Leistung in einer virtualisierten Umgebung als eine physische Umgebung; andere nicht. Sie müssen die Anforderungen der Anwendung sowie Einschränkungen der Implementierung verstehen.

Ich glaube nicht, dass es reine Software-Anwendungen, die nicht erfolgreich auf virtuellen Servern bereitgestellt werden, wenn Sie die Aufmerksamkeit auf die Details achten. (Anwendungen, die benutzerdefinierte Hardware erfordern, die nicht erfolgreich virtualisiert werden kann, ist ein anderes Problem.)

Andere Tipps

Ich benutze rsync ohne Probleme einige Teile unserer (sehr neu) virtuellen Umgebung synchron zu halten. Ich glaube nicht, es ist eine Virtualisierungs-Ausgabe so viel wie es eine I / O-Ausgabe ist, die Sie zu haben scheinen bereits identifiziert.

Ich habe festgestellt, dass die Virtualisierung sehr, sehr auf Festplatten zu besteuern, und dies wird nur schlimmer, desto mehr Gäste Sie auf dem Host-Feld haben. Für Maschinen, die sind sehr I / O-intensive, betrachten ihren Plattenzugriff Segmentieren von den anderen Wirten. Verwenden Sie jede Art von SAN-Technologie? Wir haben festgestellt, dass an meinem Arbeitsplatz sehr nützlich sein (wir verwenden zwei 8-Core-Sun Intel-Server und eine 1TB 12 Platten iSCSI-Array).

Ist Ihre Hardware vollständig von dem Virtualisierungs-Software-Anbieter unterstützt? Wenn Sie versuchen, auf nicht unterstützte Hardware laufen dann gibt es eine gute Chance, dass Ihr Plattencontroller wird wird nicht die besten Treiber verwenden, die Ihr langsamer Plattenzugriffe erklären würde.

Sie können iostat unter Linux / Unix verwenden ein Feedback über die ich zu bekommen / O, und es gibt zu iotop, obwohl es in vielen Distributionen noch nicht verpackt wird.

Aus der Hand

Ich würde sagen, das ist I / O Problem. In virtuellen Umgebungen auf den größten Faktoren, die die Leistung beeinflusst, ist der Zustand der Festplatte des Host-Rechners. Die Dinge, die wir tun, die Leistung zu optimieren, sind:

  1. Festplattenzuordnung. So erhalten Sie einen zusammenhängenden Block von Speicherplatz bekommen für die VM zu leben.
  2. Planen Sie einen defrag der VM Scheibe OS und dem Host-Server-Laufwerk. Fragmentation ist dein Feind.
  3. Seien Sie sicher, dass Sie eine Server-Sitzungen ordnungsgemäß enden. Wenn die virtuellen OS prallen, nicht nur Herunterfahren die VM in Scheiben schneiden, als diese Ursache große Fragmentierung der Festplatte. Die virtuellen OS muss das Herunterfahren / Neustart-Prozess auszuführen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top