Frage Wie man [höflich?] Softwareanbietern sagt, dass sie nicht wissen, wovon sie reden


Keine technische Frage, aber trotzdem eine gültige Frage. Szenario:

HP ProLiant DL380 Gen 8 mit 2 x 8-Core Xeon E5-2667 CPUs und 256 GB RAM mit ESXi 5.5. Acht VMs für das System eines bestimmten Herstellers. Vier VMs für den Test, vier VMs für die Produktion. Die vier Server in jeder Umgebung führen unterschiedliche Funktionen aus, z. B. Webserver, Hauptanwendungsserver, OLAP-DB-Server und SQL-DB-Server.

CPU-Anteile, die so konfiguriert sind, dass die Testumgebung nicht die Produktion beeinträchtigt. Alle Speicher auf SAN.

Wir hatten einige Anfragen bezüglich der Leistung, und der Hersteller besteht darauf, dass wir dem Produktionssystem mehr Speicher und vCPUs geben müssen. Wir können jedoch von vCenter aus deutlich erkennen, dass die vorhandenen Zuweisungen nicht berührt werden, z. B. eine monatliche Ansicht der CPU-Auslastung auf dem Hauptanwendungsserver liegt bei etwa 8%, die ungerade Spitze liegt bei 30%. Die Spikes neigen dazu, mit der Backup-Software übereinzustimmen.

Ähnliche Geschichte auf RAM - die höchste Nutzungszahl auf den Servern ist ~ 35%.

Also haben wir mit Process Monitor (Microsoft SysInternals) und Wireshark graben, und unsere Empfehlung an den Hersteller ist, dass sie in der ersten Instanz TNS-Tuning durchführen. Dies ist jedoch neben dem Punkt.

Meine Frage ist: Wie bekommen wir sie dazu, anzuerkennen, dass die VMware-Statistiken, die wir ihnen geschickt haben, ein Beweis dafür sind, dass mehr RAM / vCPU nicht helfen wird?

--- UPDATE 12/07/2014 ---

Interessante Woche. Unser IT-Management hat gesagt, dass wir die Änderungen an den VM-Zuweisungen vornehmen sollten, und wir warten jetzt auf einige Ausfallzeiten von den Geschäftsbenutzern. Seltsamerweise sagen die Geschäftsanwender, dass bestimmte Aspekte der App langsam laufen (im Vergleich zu dem, was ich nicht weiß), aber sie werden uns "wissen lassen", wann wir das System herunterfahren können (murrend) meckern!).

Nebenbei bemerkt ist der "langsame" Aspekt des Systems offensichtlich nicht das HTTP (S) -Element, d. H. Die von " die meisten der Benutzer. Es hört sich an, als wären es die "fetten Klient" -Installationen, die von den Hauptfinanzierern verwendet werden, die anscheinend "langsam" sind. Das bedeutet, dass wir bei unseren Untersuchungen jetzt den Client und die Client-Server-Interaktion in Betracht ziehen.

Da der anfängliche Zweck der Frage darin bestand, Hilfe zu suchen, ob man die "poke it" -Route herunterfahren oder einfach die Änderung vornehmen sollte, und wir jetzt die Änderung vornehmen, werde ich sie schließen langer Hals's Antwort.

Vielen Dank für Ihre Anregungen. wie immer ist serverfault mehr als nur ein Forum - es ist auch wie eine Psychologen-Couch :-)


59
2017-07-08 19:42


Ursprung


LART / Clue-by-Four? (catb.org/jargon/html/L/LART.html) (catb.org/jargon/html/C/clue-by-four.html) - Christopher Karel
Dies bleibt meine bevorzugte LART: laughingsquid.com/cat-5-o-nine-tails-ethernet-cable-whip Es ist für die Netzwerkdiagnose. Ehrlich. - Sobrique
Haben Sie die Speicherleistung aus Interesse überprüft? Nach mehr CPU / RAM zu fragen könnte eine Laien-Antwort auf eine schlechte Leistung sein, die leicht durch eine hohe Festplattenwarteschlangentiefe verursacht werden könnte. Scheint so, als hätten viele Leute die Best Practices für SQL-Speicher vergessen, als die Virtualisierung eingeführt wurde. - Ashigore
murren. Das ist richtig, Schuldspeicher! Aber ernster - es ist ein guter Punkt. Wenn es ein Problem gibt und RAM / CPU nicht hilft, kann es IO sein. Vor allem, wenn wir von VMWare sprechen, weil es nicht unüblich ist für ... na ja, die Speicherperformance eines Systems wird fast vollständig ignoriert - während man vergisst, dass man einen massiven Engpass bekommt, wenn man eine begrenzte Anzahl VMs füttert Anzahl der HBAs. - Sobrique
Ist HP in diesem Fall Ihr Lieferant? Weil ich dort arbeite. Ich kann bestätigen, dass es uns egal ist. - Christopher Wirt


Antworten:


Ich schlage vor, dass Sie die von Ihnen gewünschten Anpassungen vornehmen. Dann Benchmark die Leistung, um ihnen zu zeigen, dass es keinen Unterschied machte. Sie könnten sogar so weit gehen, um es mit weniger Speicher und vCPU Benchmark, um Ihren Standpunkt zu machen.

Außerdem: "Wir zahlen Ihnen, um die Software mit tatsächlichen Lösungen zu unterstützen, nicht mit Ratespielen."


94
2017-07-08 19:58



...weise Worte. Ich denke, dies könnte der Weg nach vorne sein, so sehr es uns schmerzt, die Veränderung zu machen. Die gute (?) Sache ist, dass die Änderungen einen Neustart erfordern, und wir können unseren Geschäftsbenutzern klar sein, dass dies auf die Anfrage des Anbieters zurückzuführen ist ... was sich mit Sicherheit als zwecklos erweisen wird. Klingt, als ob ich kleinlich werde, aber wir sind müde von dem offensichtlichen Mangel des Verkäufers an der richtigen Fehlersuche. - Simon Catlin
Es ist nicht ungewöhnlich für Verkäufer, diese Art von Stunt zu spielen. Ich denke, dass es teilweise auf Service-Level-Metriken zurückzuführen ist - fob off, frage nach mehr Informationen und schlage eine (sinnlose) Problemumgehung vor, weil zumindest zeitweise das Problem in der Zwischenzeit behoben wird. Wenn Sie mit dem Anbieter "ziehen", kann es sein, dass Sie mit dem Kundenbetreuer chatten. Aber halte nicht den Atem an. - Sobrique
Hatte eine ähnliche Situation einmal mit einem SQL-Server für SCCM (System Center Config mgr) 4 CPU 30% util avg. Konsole schrecklich langsam. Gestoßen auf 8 CPU noch 30% util, reagiert Konsole schließlich auf eine normale Art und Weise. - Clayton
Ausgezeichneter Vorschlag. Es gibt nichts wie Daten, um die Leute zu verschließen. "Wir werden die Änderung machen, die Sie vorschlagen. Wenn es die geplante Verbesserung nicht gibt, essen Sie die Kosten." Sie sind sich nicht sicher, wie viele Systeme hier betroffen sind, aber Ihre Zeit, in der sie sich als falsch erweisen, wird schnell teurer, als wenn Sie etwas zusätzlichen RAM einstecken. - Floris


Vorausgesetzt, Sie sind sicher, dass Sie innerhalb der von Ihnen dokumentierten Systemspezifikationen sind.

Dann sollten sie in Bezug auf mehr RAM oder CPU in der Lage sein, zu sichern. Als Experten in ihrem System halte ich die Leute dafür zur Rechenschaft.

Fragen Sie sie nach Einzelheiten.

  • Welche Informationen auf dem System gibt an, dass mehr RAM benötigt wird und wie haben Sie das interpretiert?

  • Welche Informationen auf dem System gibt an, dass mehr CPU benötigt wird und wie haben Sie das interpretiert?

  • Die Daten, die ich auf den ersten Blick habe, widersprechen dem, was du mir erzählst. Kannst du mir erklären, warum ich das falsch interpretiere?

  • Ich interpretiere diese [offensichtliche Datenserie] als [offensichtliche Interpretation]. Können Sie mir bestätigen, dass ich es in Bezug auf mein Problem richtig interpretiere?

Nachdem ich mich in der Vergangenheit mit der Unterstützung befasst habe, habe ich dieselben Fragen gestellt. Manchmal hatte ich Recht und sie konzentrierten sich nicht richtig auf mein Problem. Zu anderen Zeiten war ich jedoch falsch und ich habe die Daten falsch interpretiert oder andere Daten nicht berücksichtigt, die für meine Analyse wichtig waren.

In jedem Fall waren beide Situationen a Netto Gewinn für mich habe ich entweder etwas Neues gelernt, das ich vorher nicht kannte - oder ich habe ihre Support-Teams, die sich intensiver mit meinem Problem beschäftigen, um eine vernünftige Ursache zu finden.

Wenn das Support-Team nicht in der Lage ist, Ihnen eine logische Erweiterung seines Arguments auf eine Basis zu liefern, mit der Sie zufrieden sein können (Sie müssen offen sein, sich selbst zu kompromittieren, vernünftig zu akzeptieren, dass Ihre Interpretation der Daten falsch ist), dann ist es sollte in ihrer Antwort sehr präsent sein. Selbst im schlimmsten Fall können Sie dies als Grundlage für die Eskalation des Problems nutzen.


67
2017-07-09 14:26



+1 für die Erkenntnis, dass menschliches Versagen zwei Wege gehen kann (und sich etwas winden kann, wenn sie tatsächlich versucht haben, "wegzufallen"). - Cosmic Ossifrage


Das Wichtigste ist, dass Sie beweisen können, dass Sie Best Practices für Ihre Systemzuweisung verwenden, insbesondere RAM- und CPU-Reservierungen für Ihren SQL-Server.

Alles in allem ist es am einfachsten, die gewünschten Anpassungen vorzunehmen, zumindest vorübergehend. Wenn es nichts anderes gibt, tendiert es dazu, Verkäufer über die Füße zu ziehen. Ich kann die Anzahl der Male nicht zählen, die ich brauchte, um etwas Verrücktes wie dieses zu tun, um eine Technologie am anderen Ende der Linie zu befriedigen, dass es wirklich ihre Software ist, die sich nicht benimmt.


17
2017-07-08 20:01





Dafür Spezifisch Situation (bei der Sie VMware- und Anwendungsentwickler oder eine Drittpartei haben, die die Ressourcenzuordnung nicht verstehen), verwende ich die Messwerte einer Woche im Wert von vCenter-Betriebsmanager (vCops - Laden Sie eine Demo herunter, falls erforderlich) um die tatsächlichen Einschränkungen, Engpässe und Dimensionierungsanforderungen der VMs der Anwendung zu ermitteln.

Manchmal war ich in der Lage, die hartnäckigeren Kunden zu befriedigen, indem ich VM-Reservierungen änderte oder Prioritäten änderte, um Konfliktszenarien zu bearbeiten. "Wenn RAM | CPU eng ist, IHRE VM wird Vorrang haben!"Schlecht-schlechte Dinge sind passiert, als Ich habe Softwareherstellern erlaubt, ihre Anforderungen an meine vSphere-Cluster ohne echte Analyse zu diktieren.

Aber im Allgemeinen sollten sich Zahlen und Daten durchsetzen.


Ein Beispiel für etwas, das ich verwendet habe, um die Dimensionierung von VMs gegenüber dem Entwickler einer Tomcat-Anwendung zu rechtfertigen:

Entwickler: Die VM benötigt MOAR-CPU!

Mir: Nun, Gedächtnis ist deine größte Einschränkung, und hier ist eine Heatmap deiner Leistung gegen die Zeit ... Mittwochs um 18 Uhr sind die stressigsten Perioden, so dass wir uns auf diese Spitzenzeit konzentrieren können. Oh, und hier ist eine Dimensionierungsempfehlung basierend auf den letzten 6 Wochen der Produktionsmetriken ...

enter image description here 

enter image description here

enter image description here


17
2017-07-09 14:48



Ich sollte hinzufügen, dass eine auf Durchschnittswerten basierende Analyse zu falschen Ergebnissen führen könnte. Es gibt Bedingungen, bei denen die Spitzenleistung wichtig ist, die Spitzenwerte in der Belastungsstatistik jedoch nicht angezeigt werden, wenn sie wesentlich kürzer sind als das Erfassungsintervall. Sie könnten also eine schöne bunte "Ihre Gesamtnutzung ist <60%" Statistik Grafik, sondern sehen schwere Leistungseinbuße in 1-Minuten-Peaks auftreten 8 Mal pro Stunde zur gleichen Zeit. - the-wabbit
Vielleicht habe ich die Frage völlig falsch verstanden, aber ist das nicht die Gegenteil von dem, was das OP gefragt hat? Ich dachte, sie wären der Entwickler, der wusste, dass sie nicht mehr CPU brauchten, was der Verkäufer versuchte, sie zu verkaufen - es klingt wie du das Gegenteil beschreibst, wo ein Entwickler nach mehr CPUs fragt, die sie nicht brauchen. - Benubird
Ich benutze ein praktisches Beispiel. Ich gehe bei Anbietern mit starren Anforderungen (4 vCPU und 16 GB RAM) genauso vor wie bei zu kleinen Systemen, die Ressourcen benötigen. In Bezug auf die Überwachung der Granularität können Sie zu den Statistiken auf Host-Ebene zurückkehren, um mit Spitzen umzugehen ... - ewwhite
Danke dafür. Wir haben keine vCops, aber ich denke, unser vSphere "estate" ist jetzt reif genug, um diese Detailgenauigkeit zu erreichen. Ich füge dieses unserer Capex Wunschliste für nächstes Jahr hinzu. - Simon Catlin
@SimonCatlin müssen Sie es nicht kaufen. Sie können die Demo kostenlos herunterladen und 60 Tage lang nutzen. Es ist perfekt für diese Art von Situation. - ewwhite


Ich habe früher im Support gearbeitet - und einen Teil von dem, was du verlangst Geräusche sehr rational (und wahrscheinlich ist es): Aber es gibt ein paar Fragen, die Sie sich stellen sollten, bevor Sie nur die "Leistungsverbesserung" machen, die sie wünschen

  • rennst du wenigstens bei den angegebenen minimalen Systemanforderungen des Anbieters bereits?
  • Wenn Sie mindestens die Mindestanforderungen erfüllen, befinden Sie sich bereits in den empfohlenen Systemeinstellungen?

Anbieter werden 99 mal von 100 (meiner Erfahrung nach sowohl auf der Support-Seite als auch auf der Kunden- / Feldseite) nicht einmal mit leistungsbezogenen Problemen umgehen, bis die Systeme den Anforderungen ihrer Dokumentation entsprechen. Vielleicht ist es ein System, das 99,5% der Zeit mit 1 CPU und 512M RAM läuft - aber wenn die Systemanforderungen 4 CPUs und 4G RAM sagen und Sie nur 2 CPUs und 1G RAM haben, sind sie gut in ihren Rechten fordern mehr Ressourcen zugewiesen werden*.

Es ist wahrscheinlich, dass sie dich bitten, die Systemressourcen zu erhöhen, weil sie etwas im Labor / in der Entwicklung gefunden haben, wo ein Problem magisch verschwindet, wenn du einen bestimmten Schwellenwert überschreitest; Wenn dies der Fall ist, ist es ein Beispiel für potenziell schlechtes Debugging an ihrem Ende, aber bedenken Sie, dass sie keine Zeit haben, um sie zu beseitigen jeden Mögliche Fehler / Probleme, die auftreten - einige müssen nur umgangen werden, und wenn das der Fall ist, dann geh einfach mit.

Es besteht auch eine nicht geringe Chance, dass die Probleme, die Sie sehen, nicht einmal Teil von "ihrer" Software sind, sondern eine Komponente, auf die sie von einer anderen Quelle (Hersteller, OSS-Bibliothek usw.) angewiesen sind. Ich habe genau diese Situation in Bezug auf Swap - Größe, BEA WebLogic und Sonne JRE an einer Kunde vor einigen Jahren.

tl; dr:

Kurz gesagt, arbeiten Sie mit Ihrem Support-Team zusammen, eskalieren Sie bei Bedarf, bis Sie eine Lösung gefunden haben - aber seien Sie nicht überrascht, wenn einige der Vorschläge / Debugging-Schritte / Fixes abfällig oder sinnlos klingen.


*Wenn es wirklich Diese zusätzlichen Ressourcen werden nicht benötigt. Sie sind wahrscheinlich an einem Ort, um einen Dokumentationsfehler / RFE für zukünftige Versionen ablegen zu können - aber schieben Sie diese Route erst, wenn Sie bewiesen haben, dass dies nicht das Problem ist
^Ein eBook, das ich geschrieben habe, findest du vielleicht hilfreich zum Thema: Debugging und Unterstützung von Softwaresystemen


10
2017-07-09 14:11



Alles, was mit Leistung zu tun hat, erfordert viel Zeit und Ressourcen, um Fehler zu beheben und zu diagnostizieren. Schließlich gibt es nichts, was ist gebrochen also musst du schmerzhaft durchgehen. - Sobrique
@Sobrique absolut - und sie sind in der Regel in ziemlich remote-verwandten (auch scheinbar nicht miteinander verwandten) Segmenten des Produkts zur Hand - warren
Das ist ein guter Punkt, viele Debugging-Schritte können sehr kontraintuitiv sein, obwohl ich nicht denke, dass es unangemessen wäre, darauf zu bestehen, dass sie einen Grund dafür liefern. Wenn sie nicht sagen können, welchen Nutzen etwas bringt (selbst wenn es nur "um zu sehen, ob es X betrifft"), dann arbeiten sie entweder eine Checkliste durch, die sie nicht verstehen, oder sie haben keine Ahnung und machen sie wilde Vermutungen, oder sie verstecken etwas - nichts davon ist sehr ermutigend. - Benubird
@Benubird - leider kommen einige dieser Dinge ins Bauchgefühl oder "es hat es woanders repariert ..." :( - warren
"Es hat woanders repariert" ist ein schrecklicher Grund, etwas zu tun. Es stimmt, manchmal gibt es keine Zeit, ein Problem richtig zu debuggen, und Sie müssen aus dem Bauch herausgehen, aber der Gedanke daran lässt mich immer noch schaudern. Ich habe viele Bugs gesehen, die durch X behoben wurden, nur um später zu entdecken, dass das Problem tatsächlich in etwas lag, das scheinbar völlig unabhängig ist, was zu anderen Problemen führte, bis wir es herausgefunden haben. - Benubird


Entweder bitten Sie, das Ticket zu eskalieren oder nach einem anderen Vertreter zu fragen. Je nach Hersteller kann es eine Eskalation sein, wenn Sie sagen, dass Sie der Ansicht sind, dass das aktuelle Supportniveau das Problem nicht angemessen behandelt. Wenn sie nicht eskalieren, kann es hilfreich sein, nach einem anderen Repräsentanten zu fragen, denn das erfordert viel weniger "Rechtfertigung", da es nur nötig ist, mit dem aktuellen nicht zufrieden zu sein.

Wenn es ein großer Anbieter ist, dann kann das Schließen des Tickets und das Öffnen eines neuen zu demselben Problem funktionieren, da es möglicherweise an einen anderen Vertriebsmitarbeiter weitergeleitet wird, aber ich rate davon ab, weil es eine schlechte Form ist.

Sie könnten sich auch behaupten und nach einer Begründung fragen, wie mehr RAM / vCPU helfen kann, oder Sie könnten einfach mehr RAM / vCPU geben, um zu beweisen, dass es nicht hilft.


8
2017-07-08 20:01





Ich werde meine zwei Cent einwerfen. Wir waren mit diesem Ansatz ziemlich erfolgreich - viel bessere Ergebnisse und weniger Frustration von allen Seiten. Es erfordert viel mehr Aufwand als die Schuldzuweisung und das Hinzufügen von Ressourcen blind, aber es hat auch bessere Chancen, das zugrunde liegende Problem zu finden.

Wenn wir ernsthafte Probleme mit unseren On-Premise-Apps haben, die durch Support-Verträge mit Anbietern unterstützt werden, und die Anbieter ihren Dodge-Shuffling-Tanz beginnen (der immer eine ausgefallene, nicht datengesteuerte Nachfrage nach mehr CPU oder RAM enthält), neigen wir dazu Mach diese 3 Dinge:

  1. Eskaliere die Priorität auf das System-Down-Äquivalent - sie boykottieren normalerweise, aber gehen normalerweise zurück, wenn du erklärst, dass es effektiv unbrauchbar ist, selbst wenn es technisch "funktioniert". Behandeln Sie es als ein ernstes Problem für sie zu lösen. Wir bezeichnen das hier als Tiger-Team, das sich täglich trifft, um Status-Updates von allen Beteiligten zu erhalten. In der Regel wird der Anbieter Sie bitten, das Material zu ändern. Wenn es ein Prod-System ist, ist das problematisch, aber wenn Sie möchten, dass sie helfen, müssen Sie die Verantwortung übernehmen, um das Problem zu isolieren. Es hilft also, wenn Sie eine Entwicklungsumgebung haben, in der Sie Tests durchführen können.

  2. Teilen Sie dem Anbieter mit, dass er die Umgebung replizieren soll, damit THE das Problem in seinem Labor isolieren kann. Sie können sogar Sachen in einer Cloud-Umgebung hosten, wenn es sein muss. Es muss nicht genau mit Ihrer Umgebung übereinstimmen, obwohl das ideal wäre. Der Punkt ist, dass Sie möchten, dass der VERKÄUFER aktiv versucht, Ihr Problem zu replizieren, damit sie ihr Rätselraten auf ihrem System statt auf Ihrem testen können. Fragen Sie sie nach den Diagrammen, Spezifikationen usw. dieser replizierten Umgebung, um sicherzustellen, dass sie dies tun.

  3. Stellen Sie sie (unter NDA natürlich) mit Ihrem tatsächlichen Dataset zur Verfügung, so dass sie es ausführen / wiedergeben können, anstatt es zu erraten. In unserem Fall stellen sich die meisten Probleme mit den von unseren Anbie- tern zur Verfügung gestellten Apps (sowohl vorübergehend als auch chronisch) häufig als Probleme mit den zugehörigen vom Anbieter bereitgestellten Datenbanken heraus. Ich kann nicht zählen, wie oft wir das gemacht haben und sie haben das Problem schließlich auf etwas Unerwartetes in den tatsächlichen Daten aufmerksam gemacht - merkwürdige Artefakte von App-Upgrades vor 2 Jahren, wo etwas nicht sauber konvertiert wurde; veraltete Datensätze, die ein Problem mit den GC-Einstellungen aufzeigen; Queries funktionieren nicht ganz richtig, weil unsere Datenwerte einige Transmog-Routinen im Lieferantencode usw. durchbrechen. Dinge, die wir niemals selbst identifizieren könnten.

Wir haben dies in den letzten Jahren mit einer ganzen Reihe von Anbietern getan, und sie sind anfangs sehr resistent, dies auf unsere Art zu tun. Aber nachdem es funktioniert hat, ist es immer ein positives Highlight in den vierteljährlichen Reviews, die wir mit unseren Lieferanten halten. Und es hilft, unsere technische Beziehung zu diesen Anbietern zu festigen. Sie wollen keine vagen Probleme. Sie wollen spezifische Probleme, die sie analysieren können, um ihre Produkte zu verbessern.

Hoffe, der Vorschlag hilft. Ich weiß, dass es kein Universalansatz ist, aber wenn du es schwingen kannst, denke ich, dass es sich für dich lohnt.


4
2017-07-09 16:39