2013-03-29 8 views
5

Ich arbeite an einer Leistungsverbesserungsaufgabe im Bereitstellungsprozess. Während ich den Prozess durchführe, sehe ich, dass die RPM-Installation sequenziell abläuft und die abhängige Paketinstallation mehr Zeit benötigt. Ich bin ein Neuling zu RPM und suche nach einer Möglichkeit, diese Installation parallel auszuführen, um die Bereitstellungszeit zu reduzieren.Gibt es eine Möglichkeit RPM Installation parallel zu starten?

Es wäre großartig, wenn Sie mir einen Vorschlag/eine Lösung liefern könnten, diese RPMs parallel laufen zu lassen!

Antwort

4

Wenn Sie also ein RPM installieren, erstellt es eine sogenannte rpm-Datenbanksperre, und diese Sperrdatei verhindert, dass Sie eine weitere Instanz von rpm (und nach yum) ausführen. Ich stelle mir vor, dass dies eingerichtet wurde, um sicherzustellen, dass die Transaktion nicht durcheinander gebracht wird, wenn mehrere Pakete versuchen zu installieren. Stellen Sie sich vor, Sie hätten ein Paket, das eine aktualisierte Version einer bereits installierten Lib benötigt. Wie würde dieser Konflikt aussehen, wenn zwei Prozesse versuchen würden, diese Dateien nacheinander zu ändern? Wie würde die Bibliotheksverknüpfung funktionieren? , etc.?

Dies bedeutet, dass, selbst wenn Sie versucht haben, zwei RPMs von zwei verschiedenen Terminals zu installieren, der zweite Versuch fehlschlagen würde, weil der erste Prozess bereits die RPM-Datenbanksperre hat, und Sie warten müssen, bis diese Sperre freigegeben wird Installieren Sie von einem anderen Terminal oder im Grunde einen anderen Prozess.

Das führt uns zu einer anderen Frage, wenn wir die Pakete nacheinander installieren müssen, wie können wir die Geschwindigkeit erhöhen, mit der die RPMs installieren? Ich würde vorschlagen, die folgenden Optionen zu überprüfen:

Überprüfen Sie, wo die RPMs heruntergezogen werden, wenn es von außerhalb EPEL-Rechner oder einem anderen Server außerhalb Ihres Netzwerks ist, in Betracht ziehen, einen lokalen Spiegel einzurichten, dies würde Pakete ermöglichen Sie werden auf Ihrem Spiegelserver aktualisiert, und wenn Sie Ihre Bereitstellung durchführen, ziehen Sie von einem lokalen Standort aus, an dem Sie viel mehr Bandbreite haben, um sicherzustellen, dass es so schnell wie möglich zur Maschine gelangt.

Erwägen Sie, die RAM-Auslastung während Ihrer Bereitstellung zu überprüfen, wenn die Box gehämmert wird, wird die Installation von yum viel langsamer. Es kann sinnvoll sein, bestimmte Dienste während der Bereitstellung anzuhalten, um die Installation zu erhöhen, wenn dies möglich ist.

Bestätigen Sie, dass Sie alles benötigen, was installiert wird. Ist es möglich, dass einige dieser Pakete über ein Kickstart- oder Konfigurationsmanagement-Tool in den ersten Server-Build gerollt werden? Könnten die RPMs, die wir installieren (wenn sie benutzerdefiniert sind), Abhängigkeiten haben, die in Ihrer Organisation standardmäßig sind und nicht wirklich benötigt werden (manchmal haben die Leute nur eine Standardspezifikation, aus der alles aufgebaut ist)?

Dies sind alle Vorschläge, die ich mir gerade vorstellen kann, hoffentlich hilft es Ihnen, damit anzufangen.

+0

+1, außer es ist eine RPM-Datenbanksperre, keine Yum-Sperre. yum hätte seine eigene unabhängige Sperre, aber Sie können nicht zwei Kopien von RPM parallel wegen der DB laufen lassen; es hat nichts mit yum zu tun. –

+0

ahh richtig, ich werde meine Antwort anhängen. – Forrest

+0

@Forrest - Vielen Dank für Ihre ausführliche Erklärung, es hilft mir wirklich, den Fokus auf andere Bereiche zu ändern. – Jay