• %processname% (reagiert nicht)

    Jeder kennt das Problem, immer dann wenn man möglichst schnell mal eben [=>Murphy’s Law] noch etwas nachschauen möchte, dann wird man sich manchmal mit folgendem Bild konfrontiert sehen:

    image

     

    Was bedeutet “reagiert nicht”/”not responding”?

    Dazu muss ich ein wenig ausholen:

    <techie_erklär_mode>
    Ein Prozess ist letztlich nur ein Container, der Resourcen bereitstellt. Diese Resourcen können z.B. Speicher, Files, … sein.

    In einem Prozess arbeiten sog. “Threads”. Diese – letztlich auch eine Form einer Resource – leisten die eigentliche Arbeit innerhalb eines Prozesses und nutzen dabei die Resourcen des eigenen Prozesses [es gibt zwar auch von Prozessen losgelöste Threads, diese sind allerdings eine Sonderform, auf die ich hier nicht eingehe, wer mag kann sich gerne mit Fibern weiterbilden! Zwinkerndes Smiley ], die dem Prozess vom Betriebssystem zur Verfügung gestellt worden ist.

    Der sog. Main Thread, oder auch “Thread 0” ist für die Verarbeitung von Window Messages zuständig und nutzt dazu eine Message Queue, in der alle eingehenden Messages zwischengespeichert werden.
    Der Main Thread überwacht also die Queue und reagiert auf eingehende Messages. Eine solche Message kann z.B. eine Mausbewegung und/oder Klick sein.
    Diese Message Queue hat allerdings eine begrenzte Länge. Wenn also nun der Main Thread blockiert ist – entweder durch einen Live Lock oder einen Dead Lock, wobei meist ein Dead Lock zu finden ist, bei dem der Prozess auf z.B. die Beantwortung eines IO Requests wartet – dann kann diese Message Queue nicht abgearbeitet werden. Wenn nun immer weiter Messages an den Prozess gehen und dadurch irgendwann (was sehr schnell gehen kann) die Message Queue vollgelaufen ist, dann erkennt das Betriebssystem, dass keine weiteren Messages mehr angenommen werden können und reagiert so, dass das Windows ausgegraut wird und in der Titelleiste das “reagiert nicht” angezeigt wird.
    </techie_erklär_mode>

    Was kann ich gegen einen nicht reagierenden Prozess tun?

    Hier habe ich mehrere Möglichkeiten:

    1. Den Prozess mittels Taskmanagers beenden
    2. Einen Debugger an den Prozess attachen und anhand von Symbols & Source die Ursache herausfinden. (dies ist vermutlich das, was am wenigsten häufig durchgeführt wird! Zwinkerndes Smiley Siehe hierzu auch Wait Chain Traversal)
    3. Bei Windows 7 gibt es den sog. “Resource Monitor” (Zum Starten entweder über den Taskmanager->Performance->Resource Monitor oder über direkten Aufruf “perfmon.exe /res” oder über den Performance Monitor)
      imageimage

      Wenn man nun den Resource Monitor geöffnet hat, so werden nicht reagierende Prozesse in “rot” angezeigt:
      image
      Nun hilft ein beherzter rechts-Klick auf den Prozess und ein weiterer Links-Klick auf “Analyze Wait Chain…”:
      image
      um folgende Information zu erhalten:

      image
      Anhand dieser Information kann man versuchen die Verklemmung zu beseitigen. Hier können u.a. neben dem Warten auf einen bestimmten Prozess auch blockierte Resourcen (siehe Handles) aufgezeigt werden. Über dies kann dann der eigentliche Verursacher ausgemacht und entsprechende Maßnahmen eingeleitet werden.

    P.S.: in den Screenshots ist Powerpoint zu sehen, nicht weil es “anfällig” dafür ist, sondern weil ich heute selber über das Problem gestolpert bin und so ein schnell verfügbares Repro hatte – sprich dies kann mit JEDEM Prozess passieren!

     

     

    -Stephanus

  • 1. offizieller Windows 8 Blog

    Gestern hat Steven Sinofsky [Blog Profil, Wikipedia] , President der Windows Devision und damit der Kopf hinter der Windows Entwicklung, den ersten offiziellen Windows 8 Blog “Die Entwicklung von Windows 8” (engl.) gelauncht.

    Bemerkenswert an dem Blog ist, dass Steven hier nicht nur den üblichen Weg geht und die Posts auf English veröffentlicht, nein er hat sich committed innerhalb von 48h in verschiedene Sprachen (derzeit 7 weitere + EN) übersetzen lässt.

    Ich freue mich, dass Steven die Möglichkeit des Bloggens zu einem recht frühen Zeitpunkt nutzt und dass er das Vertrauen, das er mit seinem Buch über die Entwicklung von Windows 7 “One strategy: Organization, Planning and Decision Making” aufgebaut hat, auf diesem Weg stärkt.

    Von daher darf man gespannt sein, was sich dort noch tut und welche interessanten Einblicke in Windows 8 uns gewährt werden.

     

    -Stephanus

    (X-Post von: http://blogs.technet.com/b/stephanus/archive/2011/08/17/w8-1-offizieller-windows-8-blog.aspx )

  • Windows 7 Deployment - Interview mit Ralf Essbaumer (Premier Services)

    Heute mal ein etwas anderer Beitrag: Armin Wegner (Services Account Manager, s.u.) im Gespräch mit Ralf Essbaumer (Premier Field Engineer innerhalb des Premier Supports von Customer Services & Support) über das Thema Windows 7 Deployment:

    Armin Wegner, Microsoft Premier Services: Ralf, wie lange bist du schon bei Microsoft und welche Aufgaben hast du im Speziellen?

    RE: Ich bin seit 5 Jahren bei Microsoft und habe als Support Engineer Themen wie Performance Probleme, Bluescreen Analysen und weitere Aufgaben zum Thema Server und Client Betriebssysteme bearbeitet. Seit drei Jahren bin ich in der PFE (Premier Field Engineer) Organisation. Als PFE bin ich proaktiv und reaktiv beim Kunden vor Ort, und unterstütze ihn dabei unsere Produkte auszurollen.

    AW: Mit welchen Angeboten unterstützt Microsoft beim Windows 7-Deployment?

    RE: Im Rahmen des Premier Supports haben wir eine Vielzahl von Optionen die wir unseren Kunden anbieten können. Beispielsweise haben wir einen „Windows 7 Essentials“ Workshop, den wir in der frühen Windows 7 Projektphase beim Kunden ausliefern. Ziel von diesem Workshop ist es, den Kunden die neuen Features von Windows 7 näher zu bringen. Im laufenden Projekt haben wir Consulting und auch DSEs (Dedicated Support Engineers) die den Kunden vor Ort begleiten. Als nächsten Schritt haben wir einen Health Check im Sortiment, der den neuen Windows 7 Client von unserem Kunden auf Herz und Nieren testet. Somit kann unser Kunde sicher sein, dass der Client, der kurz vor dem Deployment steht, „Gesund“ ist.

    AW: Wie läuft so ein Health Check genau ab?

    RE: Der Health Check wird bei uns als Windows Desktop Risk Assessment Program (WDRAP) geführt. Wenn eine Anfrage für einen WDRAP bei uns eingeht, setzten wir gemeinsam mit den Technical Account Manager (TAM) eine kleine Telefonkonferenz auf und besprechen die Details.

    Der Kunde bekommt von uns vorab ein kleines Tool, den er auf einem Client installiert und von diesem Client aus wird dann später dieser WDRAP beim Kunden durchgeführt. Der erste Tag, den ich dann beim Kunden bin, werden wir gemeinsam alle Logs und Informationen vom Client ziehen, die wir brauchen. Am zweiten Tag werten wir alles gemeinsam aus. Es ist sehr wichtig, dass der Kunde hier mit uns eng zusammen arbeitet. Ein Wissenstransfer ist ein wesentlicher Bestandteil eines WDRAPs. Am dritten Tag besprechen wir die ersten Ergebnisse in einer kleinen Runde durch. Der vierte und letzte Tag des WDRAPs ist eine Präsentation beim Management über die Ergebnisse des WDRAPs.

    AW: Welches sind die größten „Stolpersteine“ bei der Windows 7-Einführung

    RE: Da der Client ein komplexes Thema ist und ich noch nie einen Client bei einem Kunden komplett identisch bei einem anderen Kunden gesehen habe gibt es keinen typischen „Fehler“.

    Dennoch gibt es zwei Themen die mir am Herzen liegen, die jedoch bei dem einen oder anderen Kunden übersehen werden.

    Das erste Thema ist der Internet Explorer. Der Umstieg auf Windows 7 bedeutet, dass mindestens die Version 8 des Internet Explorer zum Einsatz kommt. Leider nutzten einige Kunden häufig noch IE Versionen wie den IE6. Zwischen den IE6 und IE8/9 gab es einen großen Technologiesprung und somit müssen alle Intranet Seiten auf Funktion geprüft werden.

    Das zweite Thema ist Printing. Auch hier sollte man nicht die Arbeit unterschätzen, die in der Prüfung von Treibern, 32 Bit und 64 Bit, und älteren Druckern in Verbindung der Kompatibilität von Windows 7 steht.

    AW: Beim Thema Printing hast du 64 Bit angesprochen. Findest du es sinnvoll Windows 7 in 64 Bit auszurollen?

    RE: Einige Kunden schrecken es etwas davor zurück, Windows 7 mit 64 Bit auszurollen. Natürlich gibt es hier einen Mehraufwand der im Projekt anfällt. Beispielsweise ist zu prüfen, ob es für die Hardware die eingesetzt wird alle Treiber in 64 Bit vorliegen. Aber auch die Applikationen müssen getestet werden, ob alles Fehler frei läuft.

    Jedoch gibt es mit der 64 Bit Architektur viele Vorteile, die diesen Mehraufwand meiner Meinung nach aufwiegen.

    AW: Welchen Mehrwert hat der Kunde durch die Unterstützung eines Premier Field Engineers (PFE) bei der Einführung von Windows 7?

    RE: Ganz klar nenne ich da „Erfahrung“ als ersten Mehrwert. Die PFE Organisation unterstützt viele Großkunden beim Ausrollen neuer Produkte. Die Herausforderungen die bei einem Rollout auftreten, entstehen gelegentlich auch bei anderen Großkunden. Somit kann man Sätze häufig beginnen wie „bei einem anderen Kunden haben wir das Problem so lösen können…“

    Als weiteres Plus ist es, dass wir der Hersteller von Windows 7 sind und somit letztendlich bis zum Programmierer gehen können. Somit haben wir natürlich Zugriff auf alle Ressourcen die man sich als Techniker nur wünschen kann.

    Gastautor Armin Wegner, Services Account Manager – Microsoft Premier Services, bei der Microsoft Deutschland GmbH, hat dieses Interview für das Windows 7-Blog geführt. Sie erreichen den Autor unter https://www.xing.com/profile/Armin_Wegner2 oder direkt über armin.wegner@microsoft.com
    Kontakt Ralf Essbaumer: ralf.essbaumer@microsoft.com

     

    Ressourcen:

     

    -Stephanus

  • [Updated] Windows-Tipp: So gewinnen Sie Speicherplatz

    Festplatte voll? Kein Problem! Dominik Berger, Microsoft MVP und Windows-Profi, zeigt wie Sie nicht benötigte Daten gefahrlos vom System löschen.


    [Stephanus] Um auch den ITPros hier gerecht zu werden hier ein paar weitere Infos zum Cleanup Manager (%systemroot%\system32\cleanmgr.exe):

    Für die Verwaltung eines Windows Systems stellen sich drei Fragen bzgl. des Cleanup Managers:

    1. Wie kann ich eigene Handler erstellen? [Im Bild eine beispielhafte Darstellung einer Handler Liste]
      image
      Das prinzipielle Vorgehen bei der Erstellung eines Cleanup Handlers wird in der MSDN beschrieben:
      http://msdn.microsoft.com/en-us/library/bb776782(VS.85).aspx 
    2. Wie kann ich den Cleanup Manager fernsteuern?
      Da der Cleanmgr.exe auf jedem Windows Client verfügbar ist kann dieser entweder gescriptet, per Scheduled Tasks routinemäßig gestartet oder über entsprechende Methoden der verwendeten Deployment Software angestoßen werden.

      Dazu hier die verfügbaren Parameter für das Executable:

      image

      • /d Laufwerksbuchstabe: - Mit diesem Parameter wird das Laufwerk ausgewählt, das durch die Datenträgerbereinigung bereinigt werden soll. Beachten Sie, dass die Befehlszeilenoption /d nicht mit /sagerun:n verwendet wird.
      • /sageset:n - Dieser Parameter zeigt das Dialogfeld Einstellungen für das Bereinigen des Datenträgers an und erstellt einen Registrierungsschlüssel zum Speichern der ausgewählten Einstellungen. Der Wert n wird in der Registrierung gespeichert und ermöglicht Ihnen das Angeben unterschiedlicher Aufgaben, die die Datenträgerbereinigung ausführen soll. Bei dem Wert n kann es sich um einen beliebigen Integerwert zwischen 0 und 65535 handeln. Um alle verfügbaren Optionen bei der Verwendung des Parameters /sageset verwenden zu können, müssen Sie möglicherweise den Buchstaben des Laufwerks angeben, das die Windows-Installation enthält.
      • /sagerun:n - Dieser Parameter dient zum Ausführen der angegebenen Aufgaben, die dem Wert n mithilfe des Parameters \sageset zugewiesen wurden. Alle Laufwerke des Computers werden aufgelistet, und das ausgewählte Profil wird für jedes Laufwerk ausgeführt.
        Sie können z. B. in Geplante Tasks nach Ausführen des Befehls cleanmgr /sageset:11 den folgenden Befehl ausführen:

        cleanmgr /sagerun:11

      • Die anderen Parameter sind undocumented (und damit nicht supportet) und daher werde ich hier nicht darauf eingehen und rate von der produktiven Verwendung ab!
      • Vgl. http://support.microsoft.com/kb/253597 
    3. Warum finde ich den Cleanup Manager nicht auf einem Windows Server 2008 (R2)?

      Das Cleanmgr.exe ist Bestandteil der “Desktop Experience” und muss daher als Feature hinzugefügt werden.
      http://technet.microsoft.com/en-us/library/ff630161(WS.10).aspx

    Wir hoffen, dass dies für das Thema [auf die Schnelle] genügend Anlass gibt mal damit herumzuexperimentieren – auch, bzw. grade im ITPro Segment.

    Uns würden dazu natürlich “Best Practices” interessieren! Zwinkerndes Smiley

     

    Lars & Stephanus