Frage

Es ist eine schwierige Frage, die ich neulich gefragt wurde ... Uns mit gemischtem C auf eine ziemlich komplexe Telefonie (SIP) Anwendung arbeiten ++ und PHP-Code mit MySQL-Datenbanken und mehrere Open-Source-Komponenten.

Ein Telekom-Techniker hat uns gebeten, die Leistung der Anwendung zu schätzen (was noch nicht fertig ist). Er ging wie ‚na ja, Sie wissen, wie viele Pakete der Linux-Kernel pro Sekunde passieren, und Sie vielleicht wissen, wie schnell Ihre Anwendung ist, so mir sagen, wie viele Anrufe Ihre Sachen pro Sekunde passieren‘.

Es scheint, Unsinn zu mir, als es eine Million Szenarien, die passieren könnte (na ja, buchstäblich ...)

Allerdings ... ist es eine Möglichkeit, die Anwendungsleistung zu schätzen (zu wissen, die Hardware auf laufen, Standard-Benchmarks darauf laufen zu können, usw.) vor dem eigentlichen Prüfung?

War es hilfreich?

Lösung

Natürlich können Sie verpflichtet, das Problem mit dem oberen (max Durchsatz) Grenzen. Es gibt nichts Unsinn darüber. vor allem in der Telefonie-Welt - einen ziemlich planlos Ansatz für ein Problem in der Tat zeigt das Zeug nicht zu wissen.

Sie können sich durch das Problem umgehen - was ist das Minimum „Arbeit“ Sie haben für eine Transaktion oder was auch immer Einheit Aufgabe in Ihrer App müssen Sie erreichen

Einige Nachrichten an und von, einige Verarbeitung und einer Datenbank zum Beispiel schlagen? Erste Informationen zu den einzelnen Stücken gibt Ihnen eine Vorstellung von dem schnellstmöglichen Durchsatz. Wenn Sie das System laden und deutlich geringere Leistung sehen, dann können Sie Zeit, um herauszufinden, wo Sie möglicherweise Durchsatz mit ineffizienten Algorithmen verlieren, etc.

Bearbeiten

Um diese Übung müssen Sie alle Schritte kennen Sie Ihre App für jeden Anwendungsfall der Fall ist. Dann können Sie den max Durchsatz für jeden Anwendungsfall identifizieren. Sie sollen wissen, auf jeden Fall das Zeug vor der Freigabe und gehen zu Hause ist.

Ich bin die schlimmste Fallanalyse als dass zu ignorieren - wie Sie darauf hinweisen, -. Ist ein bisschen härter

Andere Tipps

Siehe Kapazitätsplanung für Web-Performance: Metrics, Modelle und Methoden . Darüber hinaus gibt es einige Tools, die diese Art von diskreter Ereignissimulation tun können:

Dieses Zeug ist nicht einfach, und die kommerziellen Tools ya kosten. Die Kapazitätsplanung Buch kommt mit einer CD mit vielen Excel-Arbeitsmappe Vorlagen und Beispielen von Modellen, die springen können Sie beginnen.

Viel Glück:)

Wenn Sie wirklich diese Frage beantworten müssen Sie so etwas wie dieses könnte sagen:

"Ich weiß es nicht weg die Spitze von meinem Kopf. Ich bin, werde dies für Sie zu schätzen, aber es wird einige Zeit dauern. Offensichtlich ist die Genauigkeit meiner Antwort hängt davon ab, wie vielen Aufwand (IE Zeit) Ich habe in der Berechnung meines Schätzung. Wie viel Zeit sollte ich in meiner Schätzung Berechnung? "

Setzen Sie die Last auf sie zurück. Wenn sie wirklich eine genaue Antwort wollen, sie gehen Sie zumindest einige Testanwendungen haben zu lassen, bauen, dass die tatsächliche Umgebung simulieren kann.

Sie können Spike Leistung zu messen. Ihr ganzes System kann nicht funktionieren noch, aber Sie wissen, wie die Teile sollen zusammen passen. Sie können etwas in ein paar Stunden Peitsche, die die gleiche Art von Arbeit als die letzte App tut, über alle Schichten, und es verwenden, die Leistung Ihres Entwurfs zu messen.

Denken Sie daran:. Prototypen sind breit, Spikes sind tief

Sie sollten die Schätzung tun. Eine Schätzung werden Sie nicht die richtige Antwort geben. Es wird jedoch machen Sie über das Problem zu denken. Gerade jetzt ist es klingt wie Ihre Codierung und in der Hoffnung, dass alles in Ordnung sein wird. Oder Sie sind in Panik-Modus und fühlen Sie haben keine Zeit für Schätzungen.

Verbringen Sie einige Zeit darüber nachzudenken. Analysieren Sie die wichtigsten Anwendungsfälle. Denken Sie über den Speicher, den Sie benötigen; denken Sie an den Datenbankzugriff; denken über den Netzzugang (lokal und remote). Diese werden die Leistung des Systems bewirken. Holen Sie sich das ganze Team zusammen, dies zu tun.

Sie regelmäßig die Leistung Ihres Systems während der Entwicklung für diese wichtigen Anwendungsfälle messen. Mock-up-Komponenten / andere Systeme, wenn Sie müssen. Analysieren Sie die Ergebnisse. Wie vergleichen Sie dies Ihre Schätzung. Vielleicht sind Komponenten Speicher / Datenbank / Netzwerk gebunden. Vielleicht brauchen Sie mehr Speicher; weniger Datenbankzugriff; einfachere Anfragen; Caching. Sie müssen diese Änderungen nicht sofort machen. Aber Sie wissen, wie das System funktioniert und was Sie tun müssen.

Ergebnis: Weniger bösen Überraschungen beim Systemtest. Weniger Panik, als das Erscheinungsdatum Webstühle.

Sie können auf jeden Fall tun, Kapazitätsplanung im Voraus, aber die Qualität der Schätzung wird auf der Qualität der verfügbaren Daten ab.

Die beste Schätzung ist, das System in Test zu bauen, simuliert Workloads läuft, vorhersagen dann Kapazität in Abhängigkeit von Leistungsanforderungen und Arbeitsbelastung. Diese 3 bilden eine Vorhersage Raum - gegeben 2 der 3 können Sie die dritte vorhersagen:

  1. Da die Leistungsanforderungen und die Kapazität (das heißt Hardware) können Sie die Arbeitsbelastung berechnen können Sie verarbeiten kann.

  2. Da die Leistungsanforderungen und Arbeitsbelastung, können Sie die Kapazität (das heißt Hardware) berechnen, die Sie benötigen.

  3. Bei Workload und Kapazität können Sie Ihre erwartete Leistung vorhersagen.

Dies ist in einigen Bereichen wahr, aber wenn Sie ein Experte in dieser Domäne, dann haben Sie keine Ahnung. Zum Beispiel schreibe ich Code Industrieroboter zu steuern. Die Geschwindigkeit wird durch die Roboterbewegung, nicht durch die Ausführungsgeschwindigkeit des Codes beschränkt. Zu wissen, wie schnell der Roboter ist und wie weit sie gehen haben, können wir ziemlich gute Schätzungen von „Geschwindigkeit“ machen. Ich würde keine Ahnung haben, wie die Zeit für Ihre Anwendung zu schätzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top