Jak [grzecznie?] Powiedzieć dostawcy oprogramowania, że ​​nie wiedzą o czym mówią

62

Nie jest to pytanie techniczne, ale jednak ważne. Scenariusz:

HP ProLiant DL380 Gen 8 z 2 x 8-rdzeniowymi procesorami Xeon E5-2667 i 256 GB pamięci RAM z systemem ESXi 5.5. Osiem maszyn wirtualnych dla systemu danego dostawcy. Cztery maszyny wirtualne do testu, cztery maszyny wirtualne do produkcji. Cztery serwery w każdym środowisku pełnią różne funkcje, np .: serwer WWW, główny serwer aplikacji, serwer OLAP DB i serwer SQL DB.

Udziały procesora skonfigurowane tak, aby środowisko testowe nie miało wpływu na produkcję. Cała pamięć w sieci SAN.

Mieliśmy pewne pytania dotyczące wydajności, a dostawca nalega, abyśmy musieli dać systemowi produkcyjnemu więcej pamięci i procesorów vCPU. Jednak z vCenter wyraźnie widać, że istniejące alokacje nie są zmieniane, np .: miesięczny widok wykorzystania procesora na głównym serwerze aplikacji wynosi około 8%, a dziwny skok do 30%. Skoki zwykle pokrywają się z uruchomionym oprogramowaniem do tworzenia kopii zapasowych.

Podobna historia dotycząca pamięci RAM - najwyższe wykorzystanie na serwerach wynosi ~ 35%.

Robimy więc kopanie, używając Monitora procesów (Microsoft SysInternals) i Wireshark, a naszym zaleceniem dla dostawcy jest to, że najpierw dokonują tuningu TNS. Jest to jednak poza tym kwestia.

Moje pytanie brzmi: w jaki sposób możemy przekonać ich, że przesłane przez nas statystyki VMware są wystarczającymi dowodami, że więcej pamięci RAM / vCPU nie pomoże?

--- AKTUALIZACJA 12/07/2014 ---

Ciekawy tydzień Nasze kierownictwo IT powiedziało, że powinniśmy wprowadzić zmiany w alokacjach maszyn wirtualnych i teraz czekamy na pewne przestoje ze strony użytkowników biznesowych. O dziwo, użytkownicy biznesowi twierdzą, że niektóre aspekty aplikacji działają wolno (w porównaniu z tym, czego nie wiem, ale) „dadzą nam znać”, kiedy możemy zdjąć system (narzekanie) , narzekam!).

Nawiasem mówiąc, „powolny” aspekt systemu najwyraźniej nie jest elementem HTTP (S), tj. „Cienką aplikacją” używaną przez większość użytkowników. Wygląda na to, że instalacje „grubego klienta”, używane przez główne firmy finansowe, są „powolne”. Oznacza to, że w naszych dochodzeniach rozważamy interakcję klienta i klienta z serwerem.

Ponieważ początkowym celem pytania było poszukiwanie pomocy, czy zejść trasą „poke it”, czy po prostu dokonać zmiany, a teraz wprowadzamy zmianę, zamknę ją za pomocą odpowiedzi długiej szyi .

Dziękuję wszystkim za wkład; jak zwykle, błąd serwera był czymś więcej niż tylko forum - to także coś w rodzaju kanapy psychologa :-)

Simon Catlin
źródło
5
LART / Clue-by-four? ( catb.org/jargon/html/L/LART.html ) ( catb.org/jargon/html/C/clue-by-four.html )
Christopher Karel
5
Pozostaje moim preferowanym LART: laughingsquid.com/cat-5-o-nine-tails-ethernet-cable-whip To jest do diagnostyki sieci. Szczery.
Sobrique,
17
Zainteresowany sprawdziłeś wydajność pamięci? Pytanie o więcej procesora / pamięci RAM może być po prostu laicką odpowiedzią na niską wydajność, co może być łatwo spowodowane wysoką głębokością kolejki dysków. Wygląda na to, że wielu ludzi zapomniało o najlepszych praktykach w zakresie przechowywania SQL, kiedy pojawiła się wirtualizacja.
Ashigore,
7
narzekać . Zgadza się, przechowywanie winy! Ale poważniej - to dobra uwaga. Jeśli występuje problem, a pamięć RAM / procesor nie pomaga, może to oznaczać We / Wy. Zwłaszcza jeśli mówimy o VMWare, ponieważ nie jest to rzadkie, ponieważ ... cóż, strona wydajności pamięci masowej systemu jest prawie całkowicie ignorowana - zapominając, że z natury rzeczy dostajesz ogromne wąskie gardło, jeśli karmisz wiele maszyn wirtualnych na ograniczonym liczba kart HBA.
Sobrique
6
Czy w tym przypadku HP jest twoim dostawcą? Ponieważ tam pracuję. Mogę potwierdzić, że nas to nie obchodzi.
Christopher Wirt

Odpowiedzi:

94

Sugeruję, abyś dokonał korekt, o które prosili. Następnie sprawdź wydajność, aby pokazać, że to nie ma znaczenia. Możesz nawet posunąć się tak daleko, aby przeprowadzić analizę porównawczą za pomocą MNIEJ pamięci i vCPU, aby mieć rację.

Ponadto „Płacimy za wsparcie oprogramowania za pomocą rzeczywistych rozwiązań, a nie zgadywania”.

długa szyja
źródło
10
...mądre słowa. Myślę, że może to być droga naprzód, o ile boli nas zmiana. Dobrą rzeczą jest to, że zmiany będą wymagały ponownego uruchomienia komputera i możemy być dla naszych klientów biznesowych jasne, że jest to spowodowane żądaniem dostawcy ... który prawie na pewno okaże się bezcelowy. Wygląda na to, że jestem małostkowy, ale znudzi nas widoczny brak odpowiedniego rozwiązania problemu przez producenta.
Simon Catlin,
6
Nie jest niczym niezwykłym, że sprzedawcy grają w tego rodzaju akrobacje. Myślę, że częściowo wynika to z mierników poziomu usług - wyłącz fob, poproś o więcej informacji i zasugeruj (bezcelowe) obejście, ponieważ przynajmniej przez pewien czas problem znika / zostaje naprawiony w międzyczasie. Jeśli „przyciągasz” do sprzedawcy, porozmawiaj z menedżerem konta może załatwić sprawę. Ale nie wstrzymuj oddechu.
Sobrique
1
Miałem podobną sytuację raz z serwerem SQL dla SCCM (mgr konfiguracji centrum systemu) 4 CPU 30% wykorzystania śr. Konsola jest strasznie wolna. Zniszczony do 8 procesorów nadal 30% wykorzystania, konsola w końcu reaguje w normalny sposób.
Clayton
2
Doskonała sugestia. Nie ma nic podobnego do danych, które mogłyby zamknąć ludzi. „Wprowadzimy zmianę, którą zasugerujesz. Jeśli nie da to przewidywanej poprawy, zjesz koszty”. Nie jestem pewien, na ile systemów tutaj ma to wpływ, ale Twój czas, aby udowodnić, że działają nieprawidłowo, SZYBKO staje się droższy niż podłączenie dodatkowej pamięci RAM.
Floris,
67

Pod warunkiem, że masz pewność, że jesteś w ramach podanej specyfikacji systemu, którą dokumentują.

Następnie wszelkie roszczenia, które zgłaszają w związku z wymaganiem większej pamięci RAM lub procesora, powinny być w stanie wykonać kopię zapasową. Jako eksperci w swoim systemie pociągam ludzi do odpowiedzialności.

Zapytaj ich o szczegóły.

  • Jakie informacje podane w systemie wskazują, że potrzeba więcej pamięci RAM i jak to zinterpretowałeś?

  • Jakie informacje podane w systemie wskazują, że potrzeba więcej procesora i jak to interpretowałeś?

  • Dane, które mam - na pierwszy rzut oka - są sprzeczne z tym, co mi mówisz. Czy możesz mi wyjaśnić, dlaczego mogę to interpretować nieprawidłowo?

  • Interpretuję tę [oczywistą serię danych] jako [oczywistą interpretację]. Czy możesz potwierdzić, że interpretuję go poprawnie w odniesieniu do mojego problemu?

Po udzieleniu wsparcia w przeszłości zadałem te same pytania. Czasami miałem rację i nie skupiali właściwie uwagi na moim problemie. Innym razem jednak myliłem się i nieprawidłowo interpretowałem dane lub nie dołączałem innych danych, które były ważne w mojej analizie.

W każdym razie obie te sytuacje przyniosły mi korzyść netto , albo nauczyłem się czegoś nowego, czego wcześniej nie znałem - albo zmusiłem ich zespoły wsparcia, aby zastanowiły się bardziej nad moim problemem, aby uzyskać przyzwoitą przyczynę.

Jeśli zespół wsparcia nie jest w stanie zapewnić logicznego rozszerzenia argumentu na podstawę, z której możesz być usatysfakcjonowany (musisz mieć otwarty umysł, aby się narazić, uzasadnione jest zaakceptowanie błędnej interpretacji danych), oznacza to, że powinny stać się bardzo obecne w swojej odpowiedzi. Nawet w najgorszym przypadku możesz wykorzystać to jako podstawę do eskalacji problemu.

Matthew Ife
źródło
10
+1 za rozpoznanie, że błąd ludzki może iść na dwa sposoby (i sprawienie, że wsparcie trochę się skręci, gdy rzeczywiście spróbują „odpierać”).
Cosmic Ossifrage
17

Najważniejsze jest, aby móc udowodnić, że korzystasz z najlepszych praktyk w zakresie alokacji systemu, w szczególności rezerwacji pamięci RAM i procesora dla serwera SQL.

Biorąc to wszystko pod uwagę, najłatwiej jest dokonać wymaganych zmian, przynajmniej tymczasowo. Jeśli nic innego, to nie skłoni sprzedawców do ciągnięcia. Nie mogę policzyć, ile razy musiałem zrobić coś szalonego, aby zaspokoić technologa na drugim końcu linii, że tak naprawdę jego oprogramowanie się nie zachowuje.

Tim Brigham
źródło
17

W tej konkretnej sytuacji (gdy masz VMware i programistów aplikacji lub osobę trzecią, która nie rozumie alokacji zasobów), używam tygodniowych danych uzyskanych z vCenter Operations Manager (vCops - w razie potrzeby pobierz wersję demonstracyjną ), aby wskazać prawdziwe ograniczenia , wąskie gardła i wymagania dotyczące wielkości maszyn wirtualnych aplikacji.

Czasami byłem w stanie zadowolić bardziej upartych konsumentów, modyfikując rezerwacje maszyn wirtualnych lub zmieniając priorytety w celu obsługi scenariuszy rywalizacji; „ Jeśli RAM | CPU jest napięty, Twoja VM będzie miała pierwszeństwo! ”. Zdarzały się złe rzeczy, gdy pozwoliłem dostawcom oprogramowania dyktować swoje wymagania moim klastrom vSphere bez prawdziwej analizy .

Ale ogólnie liczby i dane powinny wygrać.


Przykład czegoś, co wykorzystałem do uzasadnienia zmiany rozmiaru maszyny wirtualnej na programistę aplikacji Tomcat:

Dev : VM potrzebuje procesora MOAR!

Ja : Cóż, pamięć jest twoim największym ograniczeniem, a oto mapa temperaturowa twoich wyników w funkcji czasu ... Środy o 18.00 są najbardziej stresującymi okresami, więc możemy wyszczególnić około tego szczytu. Aha, a oto zalecenie dotyczące rozmiarów oparte na ostatnich 6 tygodniach wskaźników produkcji ...

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

ewwhite
źródło
9
Powinienem dodać, że analiza oparta na średnich może prowadzić do błędnych wyników. Istnieją warunki, w których szczytowa wydajność jest ważna, ale nie widać szczytów w statystykach obciążenia, gdy są one znacznie krótsze niż interwał zbierania / uśredniania. Więc możesz mieć ładny kolorowy „statystyki ogólnego wykorzystania <60%” wykresu, ale widzisz poważne pogorszenie wydajności w 1-minutowych pikach pojawiających się 8 razy na godzinę w tym samym czasie.
the-wabbit
Może całkowicie błędnie odczytałem pytanie, ale czy nie jest to przeciwieństwo tego, co zadał OP? Myślałem, że to deweloperzy, którzy wiedzieli, że nie potrzebują więcej procesora, który sprzedawca próbował je sprzedać - brzmi to tak, jakbyś opisywał odwrotność, gdzie deweloper prosi o więcej procesorów, których nie potrzebują.
Benubird
1
Korzystam z wygodnego przykładu. Stosuję to samo podejście do dostawców, którzy mają sztywne wymagania (4 vCPU i 16 GB pamięci RAM), a także do identyfikowania niewymiarowych systemów, które potrzebują zasobów. Jeśli chodzi o monitorowanie szczegółowości, możesz powrócić do statystyk na poziomie hosta, aby poradzić sobie ze szczytami ...
ewwhite
Dzięki za to. Nie mamy vCops, ale uważam, że nasza „v Estate” vSphere jest teraz wystarczająco dojrzała, by wymagać tego poziomu szczegółowości. Dodam to do naszej listy życzeń Capex na przyszły rok.
Simon Catlin,
2
@ SimonCatlin nie musisz go kupować. Możesz pobrać wersję demo za darmo i używać jej przez 60 dni. Jest idealny do tego typu sytuacji.
ewwhite
10

Kiedyś pracowałem przy wsparciu - i część tego, o co pytasz, brzmi bardzo racjonalnie (i prawdopodobnie jest): ale jest kilka pytań, które należy sobie zadać przed wykonaniem „ulepszenia wydajności”, którego żądają

  • są uruchomione przynajmniej w ustalonych minimalnych wymagań systemowych przez sprzedawcę już?
  • jeśli masz przynajmniej minimalne wymagania systemowe, czy już korzystasz z ich „zalecanych” ustawień systemowych?

Sprzedawcy 99 razy na 100 (z mojego doświadczenia - zarówno po stronie wsparcia, jak i po stronie klienta / klienta) nie zajmą się nawet problemami związanymi z wydajnością, dopóki systemy nie będą zgodne z wymaganiami ich dokumentacji. Być może jest to system, który działa dobrze przez 99,5% czasu z 1 procesorem i 512 MB pamięci RAM - ale jeśli wymagania systemowe mówią, że 4 procesory i 4 GB pamięci RAM, a masz tylko 2 procesory i 1 GB pamięci RAM, są one w granicach swoich uprawnień do żądać przydzielenia większej ilości zasobów * .

Jest prawdopodobne, że poprosili cię o zwiększenie zasobów systemowych z powodu czegoś, co znaleźli w laboratorium / rozwoju, w którym problem magicznie znika, jeśli przekroczysz określony próg; w takim przypadku jest to przykład potencjalnie słabego debugowania po ich stronie, ale należy pamiętać, że nie mają czasu na wyeliminowanie każdego możliwego błędu / problemu - niektóre z nich wymagają jedynie obejścia, a jeśli tak jest tutaj, po prostu idź z tym.

Istnieje również niemała szansa, że ​​problemy, które widzisz, nie są nawet częścią „ich” oprogramowania, ale komponentem, na którym polegają z innego źródła (dostawca, biblioteka OSS itp.). Wpadłem na taką sytuację związaną zamienić rozmiar, BEA WebLogic, a Sun JRE na klienta kilka lat temu.

tl; dr:

Krótko mówiąc, pracuj z zespołem pomocy technicznej, eskalując w razie potrzeby, aż znajdziesz rozwiązanie - ale nie zdziw się, gdy niektóre z sugestii / kroków debugowania / naprawiania dźwięku będą wydawane zza ściany lub bez sensu.


* Jeśli naprawdę nie „potrzebuje” tych dodatkowych zasobów, prawdopodobnie będziesz w stanie zgłosić błąd doc / RFE dla przyszłych wersji - ale nie pchaj tej trasy, dopóki nie udowodnisz, że to nie jest dostępny problem
^ eBook, który napisałem, może być pomocny w temacie: Debugowanie i obsługa systemów oprogramowania

królikarnia
źródło
2
Wszystko, co wiąże się z wydajnością, zajmuje dużo czasu i zasobów do rozwiązywania problemów i diagnozowania. W końcu nic nie jest zepsute, więc musisz prześledzić boleśnie.
Sobrique
1
@Sobrique absolutnie - i zwykle znajdują się w dość odległych (nawet pozornie niezwiązanych) segmentach dostępnego produktu
ostrzega
To dobra uwaga, wiele kroków debugowania może być bardzo sprzecznych z intuicją, chociaż nie sądzę, że naleganie, by stanowiły powód, byłoby nierozsądne. Jeśli nie są w stanie powiedzieć, jakie korzyści przyniesie coś (nawet jeśli to tylko „sprawdzi, czy wpływa to na X”), to albo pracują nad listą kontrolną, której nie rozumieją, albo nie mają pojęcia i robią dzikie domysły lub coś ukrywają - żadne z nich nie jest zbyt zachęcające.
Benubird,
@Benubird - niestety niektóre z tych rzeczy sprowadzają się do instynktu jelitowego lub „naprawił to gdzie indziej ...” :(
warren
2
„naprawiono to gdzie indziej” to straszny powód, aby coś zrobić. To prawda, że ​​czasami nie ma czasu na poprawne debugowanie problemu i musisz przejść instynkt, ale myśl o tym wciąż mnie drży. Widziałem wiele błędów, które „wydawały się” naprawiane przez X, ale później odkryłem, że problem był w rzeczywistości z pozornie całkowicie niezwiązany, co spowodowało więcej problemów gdzie indziej, dopóki tego nie odkryliśmy.
Benubird
8

Poproś o eskalację biletu lub poproś o innego przedstawiciela. W zależności od dostawcy to eskalacja może pomóc, jeśli uważasz, że obecny poziom wsparcia nie rozwiązuje w odpowiedni sposób problemu. Jeśli się nie eskalują, może pomóc poprosić o innego przedstawiciela, ponieważ wymaga to znacznie mniej „uzasadnienia”, ponieważ wszystko, czego potrzebuje, to nie być zadowolonym z obecnego.

Jeśli jest to duży sprzedawca, zamknięcie biletu i otwarcie nowego w tej samej sprawie może działać, ponieważ może zostać skierowane do innego przedstawiciela, ale odradzam to, ponieważ jest złej formy.

Możesz także stanąć na swoim miejscu i poprosić o uzasadnienie, w jaki sposób pomoże więcej RAM / vCPU, lub możesz po prostu dać więcej RAM / vCPU, aby udowodnić, że to nie pomoże.

Extractor rzeczywistości
źródło
4

Wrzucę moje dwa centy. Dzięki temu podejściu osiągnęliśmy duży sukces - znacznie lepsze wyniki i mniej frustracji ze strony wszystkich. Wymaga o wiele więcej wysiłku niż gra w obwinianie i ślepe dodawanie zasobów, ale ma też większe szanse na znalezienie podstawowego problemu.

Kiedy mamy poważne problemy z naszymi lokalnymi aplikacjami, które są wspierane umowami wsparcia dostawcy, a dostawcy zaczynają swój unikalny ruch taneczny (który zawsze wydaje się obejmować dziwne, nie oparte na danych żądania dotyczące większej ilości procesora lub pamięci RAM), mamy tendencję do wykonaj te 3 rzeczy:

  1. Eskaluj priorytet do ekwiwalentu systemowego - zwykle się nie zgadzają, ale zwykle wycofują się, gdy wyjaśnisz, że jest to praktycznie bezużyteczne, nawet jeśli technicznie „działa”. Traktuj to jako poważny problem do rozwiązania. Tutaj nazywamy to zespołem tygrysów, który spotyka się codziennie, aby otrzymywać aktualizacje statusu od wszystkich interesariuszy. Zwykle sprzedawca poprosi cię o zmianę rzeczy. Jeśli jest to system produkcyjny, jest to problematyczne, ale jeśli chcesz, aby ci pomogli, musisz przyjąć odpowiedzialność za pomoc w odizolowaniu problemu, więc pomaga to, jeśli masz środowisko programistyczne / testowe.

  2. Powiedz dostawcy, że chcesz, aby powielił twoje środowisko, aby mogli izolować problem w swoim laboratorium. W razie potrzeby mogą nawet hostować pliki w środowisku chmury. Nie musi to być dokładne dopasowanie do twojego środowiska, chociaż byłoby to idealne. Chodzi o to, że chcesz, aby VENDOR aktywnie próbował odtworzyć twój problem, aby mogli przetestować zgadywanie w systemie zamiast twojego. Poproś ich o diagramy, specyfikacje itp. Tego replikowanego środowiska, aby upewnić się, że to robią.

  3. Dostarcz im (oczywiście zgodnie z NDA) swój rzeczywisty zestaw danych, aby mogli uruchomić / odtworzyć go w rzeczywistości, zamiast zgadywać. W naszym przypadku większość problemów z aplikacjami dostarczonymi przez dostawcę (zarówno przejściowych, jak i przewlekłych) często okazuje się być problemami z towarzyszącymi bazami danych dostarczonymi przez dostawcę. Nie mogę policzyć, ile razy to zrobiliśmy, a oni ostatecznie wskazali problem na coś nieoczekiwanego w rzeczywistych danych - dziwne artefakty z aktualizacji aplikacji 2 lata temu, w których coś nie zostało poprawnie przekonwertowane; nieaktualne zapisy ujawniające problem z ustawieniami GC; zapytania nie działają całkiem dobrze, ponieważ NASZE wartości danych psują niektóre procedury transmogowe w kodzie dostawcy itp. Rzeczy, których sami nigdy nie bylibyśmy w stanie zidentyfikować.

Zrobiliśmy to z kilkoma dostawcami w ciągu ostatnich kilku lat i początkowo są bardzo odporni na robienie tego po swojemu. Jednak po tym, jak to działa, zawsze pojawia się jako pozytywny punkt w kwartalnych przeglądach, które przeprowadzamy z naszymi dostawcami. I pomaga umocnić nasze relacje techniczne z tymi dostawcami. Nie chcą niejasnych problemów. Chcą konkretnych problemów, które mogą przeanalizować, aby ulepszyć swoje produkty.

Mam nadzieję, że ta sugestia pomoże. Wiem, że to nie jest jedno uniwersalne podejście, ale jeśli możesz to zrobić, myślę, że warto.

pdapel
źródło
3

Prawdziwe pytanie brzmi: kto tu rządzi? Jeśli nie możesz realistycznie przejść na alternatywnego dostawcę, mają oni moc i wszystko, co naprawdę możesz zrobić, to zgodzić się z tym, co powiedzą i mieć nadzieję, że się uda. Niezbyt szczęśliwa sytuacja! W przeciwnym razie sugeruję, aby poprosić o kolejnego przedstawiciela (jak powiedzieli inni), ale wyjaśnij, że nie jesteś zadowolony z usługi i poszukasz gdzie indziej, jeśli nie będą w stanie wykonać pracy.

Nie tylko „dokonaj korekty, którą zasugerowali”, jeśli masz pewność, że nie będą działać, ponieważ to ustanawia wzór dla twojego związku, który zaszkodzi Ci na dłuższą metę. Płacisz im za świadczenie usług i nie powinni oni być w stanie dyktować twoich działań tak, jak ktoś, kogo wynajmę do malowania mojego domu, nie może dyktować, jaki będzie kolor.

Może to zabrzmieć drastycznie, ponieważ wydaje się, że nie jest to niezwykle ważna kwestia, ale faktem jest, że jeśli będą ci przeszkadzać w czymś drobnym, prawdopodobnie zrobią to samo dla czegoś dużego, a ostatnią rzeczą, którą chcesz, jest wpadł na jakiegoś okropnego Charliego Foxtrota sześć miesięcy później i miał wtedy takie same kłopoty ze sprzedawcą.

Upewnij się, że wszelkie kroki podjęte w celu rozwiązania problemu będą działać równie dobrze, gdy miną dwa dni od terminu i wszystko się zepsuje ...

Benubird
źródło
4
Myślałam, że to da amunicję w kontrargumentie - poprosiłeś nas, abyśmy zrobili tę bezsensowną rzecz ostatnim razem; zrobiliśmy to jako gest dobrej woli. Tym razem chcemy podać więcej szczegółów na temat twojego uzasadnienia, dlaczego to zrobi jakąkolwiek różnicę.
Sobrique
@Sobrique To ma sens i może się tak udać - nie znam wystarczającej psychologii, aby powiedzieć w ten czy inny sposób. Mój instynkt polega jednak na tym, że jeśli zrobiłeś coś teraz tylko dlatego, że powiedzieli - skutecznie przyznając, że wiedzą więcej niż ty - będą oczekiwać tego samego w przyszłości. Tak czy inaczej, jeśli musisz się z nimi kłócić (amunicja lub nie), marnujesz czas, który można by poświęcić na rozwiązanie problemu.
Benubird,
„Zrobiliśmy to po raz ostatni. Myliłeś się. Czy jesteś gotowy zaakceptować, że znowu możesz się mylić? Mamy tutaj precedens”.
Sobrique
3

Zamierzam opublikować widok od strony dostawcy.

Mieliśmy tego klienta, który miał ten powtarzający się problem, w którym wydajność oprogramowania spadała co kilka godzin do około naprawdę fatalnego tempa, a następnie wraca kilka godzin później.

Profil bulitin w systemie wskazywał, że szybkość procesora (lub ewentualnie pamięci) systemu była obrzydliwie wolna, coś w rodzaju 100 MHz zamiast oczekiwanego 2 GHz. Podwojenie procesora dostarczone przez maszynę wirtualną nie zmieniło symptomu i uważali, że jesteśmy marnotrawi.

Ponieważ nie mogli uzyskać szybszego procesora (więcej procesorów nie pomogło), spróbowaliśmy zamienić maszyny wirtualne TEST i PROD. Problem pojawił się na TESTIE następnego dnia. Następnie próbowaliśmy promować jednego z klientów do autonomicznej (bezserwerowej) instancji. Nie ma problemu na tej stacji roboczej, gdy serwer dusił się.

Stworzyli raporty z hosta VM wskazujące na brak problemów z wydajnością i próbowali ponownie stwierdzić, że jest to problem z aplikacją.

Wreszcie ja [inżynier] (nie miałem żadnego wsparcia od osób pełniących role wspierające) poprosiłem konkretnie o fizyczną skrzynkę. Klient krzyczał krwawe morderstwo, ale nikt nie miał innego potencjalnego rozwiązania. Co wiesz, problem magicznie zniknął.

Nigdy nie dowiedzieliśmy się, na czym polega problem. Wszystkie programy testowe pokazały się normalnie, ale profil aplikacji powiedział nam, że zasoby komputerowe są po prostu nieodpowiednie. W profilerze jest teraz pewien szczególny podpis, którego szukamy. Jeśli go zobaczymy, wiemy, że zanim dotrzemy dalej, problemem jest interakcja z maszyną wirtualną, ale po prostu nie było to wtedy znane.

Pewnie myśleli, że jestem tego pełen. Nie byłem Brakowało mi opcji.

EDYCJA, aktualizacja z lat później:

Ponieważ coraz więcej klientów chce uruchamiać się na maszynach wirtualnych, a zarząd chętnie próbuje rozwiązać problem za wszelką cenę, mamy dobry sprzęt do maszyn wirtualnych. Byłem w stanie zbudować specjalistyczny program do nagrywania maszyn wirtualnych, który działał w przestrzeni użytkownika (i nie wymagał żadnych uprawnień) na dwóch maszynach jedno-rdzeniowych z 512 MB pamięci RAM, który był w stanie obniżyć wydajność pamięci 1/3 z innej maszyny jednordzeniowej za pomocą tylko 4 wszystkich rdzeni z 16 używanych na hoście VM, a większość jego pamięci RAM jest nadal wolna. Program nie wywołał żadnych alarmów i nie pokazał niczego niezwykłego na hoście VM ani na żadnym z gości, z wyjątkiem wolnego dostępu do pamięci.

Teraz możemy powiedzieć klientom, że wiemy, że istnieje problem z maszynami wirtualnymi i nie jest to nasze oprogramowanie. Od czasu do czasu otrzymujemy żądania klientów dotyczące oprogramowania zgodnego z VM. Zastanawiam się, dlaczego zarządzanie nie pozwala wsparciu powiedzieć im, że byliśmy w stanie opracować oprogramowanie, które spowalnia każdą inną maszynę wirtualną na tym samym hoście.

Przerażające jest to, że technika ta jest prostą transformacją dobrze znanej techniki programowania obejmującą synchronizację bez blokady. Setki dostawców oprogramowania może mieć ten program do usuwania maszyn wirtualnych w swoim oprogramowaniu i nie wiedzieć o tym. Uzyskanie blokady instrukcji atomowej, która była tak gorąca, powinno być rzadkie, ale nie niemożliwe. Zabawne jest to, że otrzymywałem blokadę, aby konkurować z ACROSS VM.

Joshudson
źródło
-3

Sugerowałbym zupełnie inne podejście do tych wspomnianych do tej pory. Zanim zaczniesz kłócić się z dostawcą, przyjrzyj się bliżej zgłoszonemu problemowi i zobacz, co to mówi.

Jakie są zgłaszane rzeczywiste problemy i jakie są oczekiwania użytkowników. Jeśli użytkownik mówi coś „trwa zbyt długo”, zapytaj go dokładnie, co to jest (aby można go było odtworzyć), jak długo według niego powinno to potrwać i dlaczego według niego powinno to zająć tak długo. Jeśli ich oczekiwania są uzasadnione, zmierz rzeczywistą wydajność i wpływ systemu na to, co próbują zrobić. Fakt, że twój system pokazuje 30% skok w ciągu miesiąca, nie oznacza, że ​​nie działa przy> 100%, gdy użytkownik próbuje wysłać zapytanie. Jeśli możesz udowodnić swojemu dostawcy, że procesor i pamięć nie są obciążone przez problematyczne zadanie, możesz poprosić sprzedawcę o uzasadnienie rekomendacji, które będą cię kosztować.

Paul Smith
źródło
1
Cała pierwsza połowa twojej sugestii wydaje się już wykonana. Cała druga połowa jest dokładnie tym, o co prosi OP.
Chris S,
Nie zgodziłbym się. Nie przedstawiono dowodów na analizę problemu, a przytaczane dane procesora i mem są miesięcznymi agregacjami, które nie mają widocznego znaczenia dla omawianego problemu.
Paul Smith