Database interno di Windows e RAM

Giorni fa mi sono imbattuto in un nuovo problema su un server Windows 2012 R2 aziendale su cui girano essenzialmente i servizi di AD, condivisione file e database SQL del gestionale aziendale.

Il server in questione risultava rallentato e da una primissima analisi la RAM girava su valori di circa il 95%, all’occhio è saltato subito che il solo servizio di SQL occupava 6 giga su un totale di 16, vedendo un po’ più da vicino in effetti avevo 2 processi SQL attivi, il primo imputabile al database del gestionale aziendale il secondo appartenente al “Database interno di Windows” che era quello che occupava stabilmente più risorse.

Il database interno di windows in questo caso è il DB che gestisce principalmente Windows Server Update Services (WSUS) che fornisce un servizio di aggiornamenti per i sistemi operativi Microsoft Windows e altri software Microsoft. Per risolvere la situazione è bastato limitare la quantità massima di RAM utilizzabile dal DB in modo da non inficiare sulle prestazione generali del server.

  1. Aprire SQL Management Studio
  2. Connetteris al DB interno con la stringa \\.\pipe\Microsoft##WID\tsql\query nel caso la versione di WSUS sia la 4 (Server 2012) oppure \\.\pipe\mssql$microsoft##ssee\sql\query per WSUS 3. Il metodo di autenticazione deve essere “Windows Authentication”
  3. Selezionare il server in Object Explorer e poi su Properties/Proprietà
  4. Dalla colonna di sinistra selezionare “Memory” quindi specificare il valore “Maximum server memory (in MB)” e impostarla alla quantità desiderata.
  5. Confermare con OK e riavviare il servizio SQL dalla gestione dei servizi (raggiungibile dal comando services.msc o da Pannello di controllo\Tutti gli elementi del Pannello di controllo\Strumenti di amministrazione\Servizi)

L’operazione appena descritta è fattibile anche dalla riga di comando:

  1. Aprire uan finestra terminale
  2. A seconda della versione del WSUS dare i comandi:
    • Per WSUS 4 (Server 2012) >> osql -E -S \\.\pipe\Microsoft##WID\tsql\query
    • For WSUS 3>> osql -E -S \\.\pipe\mssql$microsoft##ssee\sql\query
  3. Digitare il comando >> exec sp_configure ‘show advanced option’, ‘1’; reconfigure;
  4. Per visualizzare il valore di memoria massiamo attualmente impostato >> exec sp_configure; go
  5. Per riconfiguralro >> exec sp_configure ‘max server memory’, 2048; reconfigure with override; go
  6. Chiudere il terminale con >> quit
  7. Riavviare il servizio SQL come descritto precedentemente.

 

Lascia un commento