Περιορισμός χρήσης μνήμης από WSUS

ms-wsus-logo-Apr2014Η υπηρεσία WSUS (Windows Server Update Services) είναι ιδιαίτερα χρήσιμη. Προσφέρει κεντρική διαχείριση των ενημερώσεων, περιορίζει δραστικά την κατανάλωση bandwidth στην πρόσβαση Internet της επιχείρησης και επιταχύνει τις διαδικασίες ενημέρωσης των clients που βρίσκονται στο εταιρικό δίκτυο. Ταυτόχρονα όμως καταναλώνει πολλούς πόρους του server σε μνήμη και αποθηκευτικό χώρο. Όσο αφορά την κατανάλωση μνήμης, μπορούμε να επέμβουμε δραστικά με μερικά απλά βήματα.

Η πηγή του προβλήματος

Το WSUS μπορεί να τρέξει είτε σε μία υπάρχουσα εγκατάσταση SQL Server (Express, Standard ή οποιαδήποτε άλλη έκδοση) είτε, αν δεν υπάρχει κάτι τέτοιο, σε Windows Internal Database (WID). Το WID είναι μία lightweight εκδοχή του SQL Server Express που παρέχει μόνο τοπική σύνδεση στις εφαρμογές, είτε μέσω Shared memory, είτε μέσω Named pipes. Εκτός και αν ορίσουμε διαφορετικά, η προεπιλογή είναι να χρησιμοποιηθεί το WID.

Η βάση που δημιουργείται, από προεπιλογή μπορεί να χρησιμοποιήσει κατ’ ελάχιστον 128MB αλλά δε διαθέτει ανώτατο όριο. Επομένως, όπως κάνουν όλες οι βάσεις του SQL Server, έτσι και το WID, θα προσπαθήσει να καταλάβει όση περισσότερη μνήμη μπορεί. Αυτό σε μία μέση περίπτωση αντιστοιχεί σε περίπου 2,5GB RAM! Αφενός το μέγεθος αυτό είναι υπερβολικά μεγάλο, πιθανότατα μεγαλύτερο από οποιοδήποτε άλλο process του server, αφετέρου το WSUS δεν χρειάζεται πράγματι τόση μνήμη. Για την ακρίβεια, σε ένα δίκτυο με έως 50 σταθμούς εργασίας, το WSUS είναι ευτυχισμένο ακόμα και με μόλις 384MB. Μάλιστα, αν όλοι οι υπολογιστές δεν υπερβαίνουν τους 5, το ανώτατο μέγεθος μπορεί να περιοριστεί και στα 256MB.

Η λύση

Η λύση είναι να χρησιμοποιήσουμε ένα εργαλείο που θα μας επιτρέψει να συνδεθούμε στο WID Instance του WSUS και να ορίσουμε ανώτατο μέγεθος τα 384MB ή ότι άλλο κρίνουμε ότι επαρκεί. Το εργαλείο αυτό είναι το Microsoft SQL Server Management Studio Express, το οποίο διατίθεται δωρεάν από το Download Center της Microsoft. Και καθώς, όπως ήδη είπαμε, το WID δεν επιτρέπει δικτυακή σύνδεση, θα πρέπει να εγκαταστήσουμε το Management Studio τοπικά στο server που τρέχει το WSUS.

Βήμα 1: Λήψη και εγκατάσταση Management Studio

Η τελευταία έκδοση του SSMSE 2012 είναι διαθέσιμη ως μέρος του SQL Server Exrpess 2012 και βρίσκεται εδώ. Αφού πατήσουμε Download επιλέγουμε το “ENU\x64\SQLManagementStudio_x64_ENU.exe” ή το “ENU\x86\SQLManagementStudio_x86_ENU.exe” ανάλογα με την αρχιτεκτονική του συστήματός μας. Στη συνέχεια το εγκαθιστούμε.

Σημειώνουμε ότι αν υπάρχει ήδη εγκατεστημένη κάποια παλαιότερη έκδοση του Management Studio πιθανότατα μπορούμε να τη χρησιμοποιήσουμε.

Βήμα 2: Σύνδεση στο WID με το MSSMSE 2012

Εκτελούμε το SSMSE-WID-Apr2014SSMSE 2012 ως Διαχειριστές (δεξί κλικ -> Run as Administrator). Στο Server name, βάζουμε το connection string ανάλογα με την έκδοση του λειτουργικού του server.

  • Για 2003 – 2008: \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
  • Για 2012: \\.\pipe\MICROSOFT##WID\tsql\query

Στο Authentication επιλέγουμε Windows Authentication καθώς είναι η μόνη μέθοδος που υποστηρίζει το WID. Προσοχή, αν δεν τρέξετε το SSMSE ως Διαχειριστές, δεν θα καταφέρετε να συνδεθείτε, καθώς από προεπιλογή μόνο ο χρήστης Administrator μπορεί να συνδεθεί στο WID.

Στο instance του WID κάντε δεξί κλικ -> Properties όπως φαίνεται στο σχήμα παρακάτω.

SUSDB-SSMSE-Apr2014a

Στη σελίδα Memory (αριστερό μενού) ορίζουμε ως Minimum server memory (in MB) την τιμή 128 και ως Maximum server memory (in MB) την τιμή 384 (ή ότι άλλο κρίνουμε) και πατάμε ΟΚ.

SUSDB-SSMSE-MemoryProperties-Apr2014

Πλέον μπορούμε να κλείσουμε το Management Studio. Από τον Task Manager μπορούμε να δούμε το process sqlserver να μειώνει βαθμιαία τη μνήμη που καταλαμβάνει, το οποίο μέσα σε λίγα δευτερόλεπτα θα πρέπει να έχει διαμορφωθεί στο μέγιστο όριο που του ορίσαμε.

email

Leave a Reply

Your email address will not be published. Required fields are marked *

Follow Me