Jak rozwiązać problem, gdy nie mam pojęcia, od czego zacząć?

40

Szukam wskazówek, wskazówek i odpowiedzi, jak rozpocząć rozwiązywanie problemów, gdy:

  1. Problem jest sporadyczny
  2. Problem może leżeć dosłownie wszędzie - system operacyjny; darmowe oprogramowanie źródłowe; moje własne oprogramowanie; zakupione oprogramowanie; okruchy na klawiaturze; konkretna kombinacja oprogramowania, z którego obecnie korzystam; Demon Maxwella; mali niebiescy mężczyźni faktycznie obsługujący maszynę rozpoczęli strajk; itp.
  3. Mam wiedzę specjalistyczną tylko w kilku obszarach, które są potencjalnymi kandydatami na przyczynę problemu.

Konkretny problem, który mam, jest wyszczególniony poniżej jako przykład, ale nie szukam odpowiedzi na mój obecny problem, ale raczej gdzie i jak zacząć rozwiązywać takie problemy.

Obecnie mam problem z moją nową maszyną. Kilkakrotnie maszyna właśnie się zawiesiła; nie akceptujących naciśnięć klawiszy, kliknięć myszką ani niczego innego poza włącznikiem / wyłącznikiem zasilania. Zawsze niezmiennie przeglądam sieć; Uruchomiłem kilka (<= 6 innych aplikacji). Żadna z tych aplikacji nie jest ważna; i stanowią mieszankę programów komercyjnych i programów typu open source, zazwyczaj migrowanych z różnych wersji Uniksa.

Moja maszyna to czterordzeniowy laptop z systemem Windows 7 I7.

EDYTOWAĆ:

Chociaż stwierdziłam, że opis problemu był tylko przykładem, niektóre komentarze koncentrują się na rozwiązaniu tego problemu. Niestety, ponieważ był to tylko przykład, podane informacje są poprawne, ale niekompletne. Aby uniknąć marnowania czasu przez ludzi na próby zdalnej pomocy przy rzeczywistym problemie, podaję kilka innych informacji na temat mojej konfiguracji. Jak pierwotnie powiedziałem, nie szukam odpowiedzi na ten konkretny problem.

Moja maszyna jest laptopem o dużej mocy; jest moją główną maszyną; służy do programowania i pisania technicznego, komunikacji - e-mail, WWW, FTP itp., a także do edycji i indeksowania zdjęć. Rygorystyczny i obszerny pakiet programów testujących sprzęt, w tym testy procesora, testy pamięci i testy wszystkich innych komponentów, są uruchamiane co najmniej raz w miesiącu. Co najmniej raz w miesiącu uruchamiane jest także pełne skanowanie w poszukiwaniu wirusów; pełne skanowanie w poszukiwaniu programów szpiegujących; czyszczenie dysku; i defragmentacja dysku.

Dysk zawiera około 3 * 10 ^ 6 plików; użycie dysku wynosi 300 Gb, pozostawiając 150 Gb za darmo. Pamięć to 8 Gb. Podczas gdy maszyna może się nieco nagrzać, kiedy korzystam z pełnego zestawu głównych narzędzi programistycznych, problem napotkałem tylko wtedy, gdy korzystam z niej bardzo lekko - przeglądanie stron internetowych oraz Textpad i Graphviz oraz baza danych Firebird i lekka przeglądarka baz danych (Flame Robin ). W tych okolicznościach nawet wentylator nie jest lekko ciepły. Nie wprowadziłem żadnych zmian w oprogramowaniu, systemie operacyjnym ani sprzęcie w okresie, w którym napotkałem problem. Nastąpiło wiele automatycznych aktualizacji - Microsoft, Adobe i Lenovo głównie, ale nie wyłącznie.

To tło umieszcza w kontekście (mam nadzieję) moje powody, dla których zadałem to pytanie w taki sposób, jak ja. Teraz zacznę badać różne dzienniki wymienione w odpowiedziach, jako pierwszy krok w próbie zawężenia pola dochodzenia. Spróbuję wykonać jedną z cech sugerowanych w odpowiedziach, które otrzymałem do tej pory - cierpliwość - w moim dochodzeniu.

Chris Walton
źródło
6
+1 Ponieważ to pytanie może być dla mnie przydatne w przyszłości.
Tamara Wijsman,
2
Czasami przed uruchomieniem pełnego, metodycznego podejścia do rozwiązywania problemów powinieneś podjąć próbę pospolitych nisko wiszących owoców: Uruchom pełne skanowanie w poszukiwaniu oprogramowania szpiegującego, przeszukaj dziennik systemu Windows w poszukiwaniu nieoczekiwanych wyłączeń i sprawdź, jakie (jeśli jakieś) problemy go poprzedzały, sprawdź sytuacji na dysku, uruchom dysk sprawdzający, daj autorunowi Sysinternal szybkie skanowanie w poszukiwaniu nieznanego / podejrzanego oprogramowania. Mają prosty zestaw narzędzi do uruchomienia, które mogą szybko zidentyfikować wiele różnych problemów sprzętowych i programowych. Jeśli nic nie znajdą, zmarnujesz mało czasu i możesz rozpocząć bardziej dokładny proces.
Alain
1
Śledź także Blog Marka, aby dowiedzieć się, jak irytujące problemy są rozwiązywane za pomocą Sysinternals.
Tamara Wijsman
1
Powodzenia w rozwiązywaniu problemów, sugerowałbym utworzenie nowego pytania, jeśli chcesz uzyskać więcej informacji zwrotnych, aby utrzymać
porządek

Odpowiedzi:

42

Znajdź lepszy pomysł.

Nie wygrasz bitwy bez wystarczających informacji terenowych.

  1. Opisz szczegółowo swój problem, abyś miał dobry pomysł, kto wie, że zdarzy się to tylko raz.

  2. Śledź w czasie, co wydarzyło się wcześniej i razem z problemem, zarówno ty, jak i komputer.

  3. Pomyśl o możliwych przyczynach, ponieważ czasem może to być coś, co nie jest oczywiste.

  4. Uzyskaj więcej informacji, gdy nie masz pojęcia o tym, co się dzieje, może to obejmować zdarzenia , narzędzia SysInternals , analizę wydajności , debugowanie i inne narzędzia w Twojej wiedzy .

  5. Sprawdź swoje założenia, aby upewnić się, że myśli nie odfiltrowują przyczyny.

Dziel i rządź.

Ponieważ w ten sposób wojsko pokonuje swojego przeciwnika, nawet gdy przewaga liczebna jest większa.

Wyeliminuj możliwe przyczyny, w przeciwnym razie będziesz mieć problem ze śledzeniem problemu. W ten sposób będziesz zbliżał się do pierwotnej przyczyny problemu, dzięki czemu możesz łatwiej rozwiązać problem.

Na przykład w przypadku sprzętu odłącz i usuń wszystko, czego nie potrzebujesz do rozwiązania problemu. W ten sposób możesz odłączyć komponent powodujący problem. A potem znów chodzi o włożenie połowy komponentów, sprawdzenie, czy się nie powtórzy, i powtórzenie podziału, aż pojawi się zły komponent ...

Testowanie czegoś na innym komputerze, jeśli jest dostępny, jest również dobrą korzyścią w rozwiązaniu problemu.

Na przykład w przypadku oprogramowania , ponowne uruchomienie w trybie awaryjnym pomaga również wyłączenie wpisów startowych. Dotyczy to również włączania / wyłączania ustawień, próbowania domyślnej konfiguracji i tak dalej ...

Przetestujmy to.

Obecnie mam problem z moją nową maszyną. Kilkakrotnie maszyna właśnie się zawiesiła; nie akceptujących naciśnięć klawiszy, kliknięć myszką ani niczego innego poza włącznikiem / wyłącznikiem zasilania. Zawsze niezmiennie przeglądam sieć; Uruchomiłem kilka (<= 6 innych aplikacji). Żadna z tych aplikacji nie jest ważna; i stanowią mieszankę programów komercyjnych i programów typu open source, zazwyczaj migrowanych z różnych wersji Uniksa.

  1. To właściwy opis sam w sobie, nie zdarza się to ani razu .

  2. Wiesz, co się stało z problemem,
    ale nie pomyślałeś o tym, co zrobiłeś Ty lub Twój komputer przed problemem .

    Nie mogę tego powiedzieć, ale ty, twój dziennik zdarzeń i ostatnio zmodyfikowane pliki / foldery mogą powiedzieć.

  3. Prawdopodobna przyczyna jest najprawdopodobniej związana z procesorem , ponieważ jest to składnik, który przetwarza rzeczy.

    Bardziej konkretnie może to być proces, sterownik lub niesprawny sprzęt (być może problemy z temperaturą?).

  4. Wiem, że to procesor, ale nie wiem co. Wydarzenia tego nie pokazują, Process Explorer zawiesiłby się na DPC .

    Tak więc, w następnym kroku, pozwalam na uruchomienie analizy śladu, którą zamykam po wystąpieniu zawieszenia.

    Patrzę na ślad i widzę, że przyczyną problemu jest sterownik X !

  5. Nie poczyniono żadnych rzeczywistych założeń. Założeniem procesora jest nasze podejście Divide & Conquer ...

Więc tutaj zaczynam się dzielić, aby pokonać problem, przestaję raz rozwiązany:

  1. Masz problem z aktualną wersją sterownika?
    Zaktualizuj sterownik do najnowszej wersji.

  2. Masz problem z najnowszymi wersjami sterownika?
    Zdobądź nowy ślad. Zaktualizuj sterownik do starszej wersji innej niż początkowa.

  3. Masz problem z urządzeniem? Problem z konfiguracją w rejestrze?
    Zdobądź nowy ślad. Zainstaluj ponownie i / lub wyłącz urządzenie, jeśli to możliwe.

  4. Problem jest przypadkowy, czy procesor się nagrzewa?
    Sprawdź temperaturę procesora, w razie potrzeby wymień wentylator.

  5. Problemem nie jest procesor, czy istnieją inne wpływy na sprzęt i oprogramowanie?
    Usuń sprzęt i wyłącz oprogramowanie, aby uruchomić wpływ innych firm.

  6. Problem nie dotyczy części wymiennej, należy go wymienić.
    W najgorszym przypadku, jeśli wszystko inne zawiedzie, musisz udać się na wymianę.

Zdobywanie nowych śladów i usuwanie sprzętu daje nam więcej informacji, dzięki czemu wiemy, gdzie szukać dalej.

Tamara Wijsman
źródło
4
+1 za dzielenie i podbijanie. Zaakceptowano w celu specyfikacji opisu, śledzenia wstecz oraz mechanizmów dzielenia i rozwiązywania problemu.
Chris Walton,
5
+1 Genialna odpowiedź. Jedyne, co należy dodać, to: Sprawdź swoje założenia
Bevan,
co powiesz na „zmień jedną rzecz na raz”?
Florenz Kley,
2
@Florenz: Cóż, dzieląc albo bierzesz je jeden po drugim (dla małej liczby lub gdy nie możesz oprzeć się na wielu przyczynach) lub dzielisz je (dla większej liczby, gdy możesz sprawdzić wiele rzeczy na raz. Podział na pół, jeśli to możliwe, jest szybszy niż robienie ich jeden po drugim. Na przykład, aby rozwiązać 100 problemów, wystarczy przetestować je tylko 8 razy (100-> 50-> 25-> 13-> 7-> 4-> 2-> 1), zamiast 100 razy ...
Tamara Wijsman
2
rozsądny podział! Chciałem powiedzieć, że „nie naprawiaj rzeczy szybciej, niż możesz przypisać zmianę zaobserwowanej delcie”. Używanie książki laboratoryjnej ze stronami, których nie mogę wydrzeć, jest moją metodą, aby to zrobić.
Florenz Kley,
6

Dobre logi i intuicja - naprawdę.

  • Od pierwszego dnia śledź wszystko, co robisz w systemie: aktualizacje aplikacji i systemu operacyjnego, nowe instalacje, nowy lub usunięty sprzęt lub połączenia, burza, która „nie spowodowała problemu”.
  • Gdy pierwszy raz zauważyłeś problem:
    • Co robiłeś
    • Co jeszcze niezwykłego wydarzyło się ostatnio?
    • Co ostatnio zrobiłeś inaczej?
    • Od tego momentu, miej świadomość tego, co robisz, więc następnym razem, gdy to się stanie, będziesz lepiej rozumieć to, co przed chwilą to zrobiło.
    • Migawka dzienników systemowych.
  • Sprawdź, czy możesz to odtworzyć. Dopóki nie będziesz mógł go odtworzyć, nie możesz go znaleźć.
  • Rozpocznij partycjonowanie systemu: tryb awaryjny vs. uruchamianie na żywo, nowe konto vs. zwykłe konto, inna klawiatura i mysz niż zwykłe (zwłaszcza bluetooth vs. przewodowe), czy dzieje się to w ciągu kilku minut od uruchomienia lub przebudzenia vs. dopiero po godzinie więcej biegania (pomyśl termicznie).
JRobert
źródło
2
+1 za rejestrowanie aktywności; i dla intuicji. Nie jest to akceptowana odpowiedź tylko dlatego, że rejestrowanie jest dobre tylko wtedy, gdy jest wykonywane od pierwszego dnia. Prowadziłem dzienniki, ale nie byłem wystarczająco szczegółowy; i nie uwzględniły aktualizacji systemu firmy Microsoft ani innych aktualizacji automatycznych.
Chris Walton,
1
@ChrisWalton: Istnieją szczegółowe dzienniki dotyczące usługi Windows Update, wstawiania / usuwania urządzeń, instalacji sterowników i tak dalej. Zobacz C:\Windows\*.log, C:\Windows\Logs, C:\Windows\inf\*.loga także Performance Monitor > Data Collector Sets > (Startup) Event Trace Sessions. Ponadto, @JRobert, +1 za wyjaśnienie, jak uzyskać bardziej szczegółowy pomysł ...
Tamara Wijsman,
4

Zwykle zaczynam od dzienników zdarzeń i wszelkich dzienników, które program może samodzielnie utworzyć. Programy czasami tworzą dziennik w folderze programu.

Po określeniu godziny przeszukaj dzienniki w poszukiwaniu zdarzeń. Oczywiście dzienniki systemu Windows mogą zawierać błędy zatrzymania, które można łatwo zidentyfikować.

Sprawdź wszystkie sterowniki i upewnij się, że są aktualne.

Cierpliwość będzie również wymagana w dużych dawkach.

Dave M.
źródło
2

Oprócz wszystkich dobrych porad, które już podano, jeśli pliki dziennika nie dają wiele do zrobienia, często warto przeprowadzić odpowiedni test pamięci maszyny - wadliwa pamięć może powodować różnego rodzaju dziwne przerywane zawieszanie się i awarie. Wbudowany test pamięci jest znacznie bardziej zbliżony do liczby pamięci, ponieważ niezwykle rzadko test włącza się, by wykryć błąd pamięci.

Google for Windows Memory Diagnostic i nagraj go na dysku CD. Jest stary, ale jest jednym z lepszych testów pamięci i jest bezpłatny.

Matt
źródło
dziękuję za odpowiedź i sugerowane narzędzie. Obawiam się, że raczej nie trafiłeś w sedno mojego pytania - sugerujesz testowanie pamięci; ktoś inny zasugerował automatyczne pobieranie oprogramowania Adobe. Moje pytanie brzmiało; w tych okolicznościach, jak zdecydujesz, co zrobić, gdy istnieje ogromny zakres możliwości.
Chris Walton
1
@Chris: Tak jak powiedziałem; przy rozwiązywaniu problemów sporadycznych i niewytłumaczalnych (w oczywiście trudnej sytuacji programistycznej), jeśli nie ma dziennika, od którego można zacząć, ani żadnych innych znaczników sugerujących od czego zacząć, uruchomiłbym test pamięci. Logika jest taka, że ​​jest stosunkowo szybki do uruchomienia w porównaniu do próby replikacji sporadycznego problemu. Po wykluczeniu zaczynasz zwężać się i dostajesz pomysł, jak to ujął TomWij.
Matt
Słusznie.
Chris Walton