Jump to content
  • entries
    16
  • comments
    22
  • views
    6450

LSASS: 100% CPU Load on a Domain Controller


SOF

875 views

 Share

 

Καλησπέρα! Πιστεύω πολλοί από εσας έχουν βρεθεί στην κατάσταση που περιγράφω στον τίτλο.

Δεν χρειάζεται πανικός όμως. 100% CPU στον DC λόγω του LSASS για περιορισμένο χρονικό διάστημα δεν αποτελεί από μόνο του πρόβλημα. Το LSASS είναι το πιο σημαντικό service επάνω σε εναν DC και έχει σχεδιαστεί να δεσμεύει ότι πόρους χρειάζεται για να ολοκληρώσει τις εργασίες του. Εξάλλου γιατί τον έχουμε τον επεξεργαστή για να δουλεύει ή να κάθεται;

Τα προβλήματα ξεκινάνε όταν το load δεν πέφτει κάτω απο το 100% για μια δύο ώρες, υπάρχουν προβλήματα με το replication, oi χρήστες δεν μπορούνε να δηλωθούνε, το event log γεμίζει με errors κτλ..

Δηλαδή όταν ο DC μας δεν την παλέυει άλλο :)

Και οι περισσότεροι έχουμε την λύση έτοιμη. “Εμμμ κυριε διευθυντά χρειαζόμαστε ακόμα δύο DCs, ε δεν θα κοστίσει πολλά… κανά δεκαχίλιαρο.”

Στους δύσκολους καιρούς όμως που διανύουμε η παραπάνω  ατάκα θέλει κότσια, και ακόμα και αν τα διαθέτουμε, μπορώ, χωρίς να είμαι προφήτης, να μαντέψω το αποτέλεσμα.

Οπότε αργά η γρήγορα θα αναγκαστούμε να ανοίξουμε το bing μας και να αρχίσουμε το ψάξιμο. Πρίν όμως αρχίσετε να ψάχνετε μανιωδώς, ρίξτε μια ματιά στα παρακάτω τα οποία ελπίζω να σας διευκολύνουν να βρείτε την αιτία του high load.

Το πιο σημαντικό είναι να απομονώσουμε το πρόβλημα απαντώντας τις παρακάτω ερωτήσεις:

Έχουν εγκατασταθεί τα τελευταία Service Packs και hotfixes;

Το πρόβλημα εμφανίζεται σε έναν DC ή σε περισσότερους;

Το πρόβλημα παραμένει ακόμα και αν τραβήξω το καλώδιο δικτύου;

Το πρόβλημα εμφανίζεται σε συγκεκριμένες ώρες/μέρες ή σε τυχαία χρονικά διαστήματα.

Άλλαξε κάτι από τότε που έχουμε το πρόβλημα; (βγήκε π.χ. ένας DC offline)

Εφόσον απαντήσουμε τα παραπάνω θα έχουμε σχηματίσει σίγουρα μια άποψη και δεν πάμε στα τυφλά.

Στο 90% των περιπτώσεων αρκεί να τρέξουμε στον DC τον Server Performance Advisor. To report που δημιουργείται είναι πολύ ευκολο να αναλυθεί από έναν έμπειρο admin και δίνει μια συνολική εικόνα του τι τρέχει επάνω στον σέρβερ μας την χρονική στιγμή που το πήραμε.

Εδώ ένα μικρό παράδειγμα του τι είδους πληροφορίες μπορούμε να πάρουμε:

image

image

 

Με μια γρήγορη ματιά βλεπουμε τι προκαλεί το load (top activity) και ποιος προκαλεί το περισσότερο (top client). Και αν θέλουμε περισσότερες πληροφορίες εχουμε και την δυνατότητα του drill down. Εκτός των άλλων δημιουργείται ένα γράφημα perfmon, με το οποίο διαλέγoντας τα κατάλληλα counters, μπορούμε να έχουμε μια γραμική εικόνα του τι διεργασίες συμπίπτουν με το high load του CPU.

Ένα άλλο πολύ χρήσιμο εργαλείο είναι το XPerf το οποίο περιγράφεται καταπληκτικά στο σε αυτό το blog post. To tool σχεδιάστηκε για Windows 2008 και Vista.

Μια διαφορετική και πολυ χρήσιμη μέθοδος troubleshooting είναι να παίρνουμε network traces (εφόσον διαπιστώσουμε ότι το πρόβλημα δημιουργειται από το δίκτυο) κατά την διάρκεια του high load. Όχι μόνο από τον DC αλλά και από τους clients.

Για να κάνω προφανές το τι μπορεί να επιφέρει σε μια μεσαία επιχείρηση ένα απλό logίn script που διαβάζει τα groups ενός χρήστη και κάνει SID to name translation πχ. όπως αυτό.

Total users (1.000) x groups the user is member of (~100) x  requests for each translation (2) = 200.000 Requests.

3 hours of logon time = ~20 req/sec

Και αυτό δεν είναι τίποτα… έχω δει δολοφονικά scritps.

Τα traces του DC μπορούν να μεγαλώσουν πολυ σε μέγεθος καθιστώντας πολυ δύσκολη την ανάλυσή τους χωρίς τα κατάλληλα στατιστικά εργαλεία (προτείνω να ανοίγετε case στο MS support). Τα traces όμως από τους clients μπορούν να αποδειχθούν πολυ χρησιμα στην αναγνώριση των προγραμμάτων που ίσως να στέλνουνε παραπάνω traffic από το κανονικό.

Εάν η ανάλυση όλων αυτών δεν αποδώσει ένα συμπερασμα υπάρχει και η τελική λύση του LSASS user dump με ADplus ή userdump. To οποίο συνηθίζεται να εμφανίζεται σαν το καλυτερο εργαλείο αλλά κατά την άποψη μου αυτό είναι υπερβολή. Σε μια κατάσταση high load load υπάρχουν αμέτρητα threads, και προσθέστε ότι ένα dump δεν φθάνει, πρεπει να πάρουμε 2 3 στην σειρά. Τα οποία είναι στην ουσία snapshot, και αυτός που τα αναλύει πρέπει σχεδόν να μαντέψει πιο thread κάνει κάτι περίεργο.

Προφανώς και θα πρέπει σε αυτή την περίπτωση να ανοίξετε ένα support case στην MS, αν δεν θέλετε να κάψετε τον εγκέφαλό σας.

Ελπίζω να έριξα λίγο φως σε αυτό το θέμα, θα χαρώ να απαντήσω σε σχόλια και ερωτήσεις.

 

Φιλικά

SOF

 Share

1 Comment


Recommended Comments

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...