none
SQLServer 2005: utilizzo del secondo processore. RRS feed

  • Domanda

  • Buongiorno ! 

    Ho da intervenire su un server Windows Server 2003 con MSSQLServer 2005 che al momento dell'installazione aveva un unico processore e al quale ultimamente ne hanno aggiunto un altro .
    Gli sviluppatori si lamentano del fatto che pare che l'instanza MSSQL continui ad utilizzarne soltanto uno.

    Posto che non si tratti di un problema di licenza (magari scopro che è una Express e il problema è risolto!) esiste una procedura per attivare/regolamentare l'uso dei processori di MSSQLServer ed una verifica da fare per avere la certezza di quanti processori siano realmente utilizzati ? 

    Grazie a tutti in anticipo, saluti.


    Hunternet

    lunedì 28 aprile 2014 13:06

Tutte le risposte

  • Ciao HunterNet79,

    se eseguendo da Management Studio il comando 

    exec master.dbo.sp_configure 'affinity mask'

    la colonna config_value mostra il valore zero, allora SQL Server è impostato per utilizzare automaticamente il nuovo processore

    A questo indirizzo, comunque, trovi una lista delle varie edizioni di SQL Server, con il numero di processori supportati da ciascuna

    http://msdn.microsoft.com/en-us/library/ms143760(v=sql.100).aspx


    Emiliano Musso


    lunedì 28 aprile 2014 14:42
  • Ciao e grazie della risposta. 

    Prima domanda: nel caso in cui il valore non fosse 0 ?!? 

    e poi : 'impostazione del maximum degree of parallelism , è secondo te consigliabile settarla comunque a 0 per far consentire un uso bilanciato dei processori al server stesso ?!?

    Grazie ancora.


    Hunternet

    lunedì 28 aprile 2014 14:55
  • Nel caso non fosse zero, può essere riconfigurato. A questo indirizzo troverai indicazioni in merito: http://technet.microsoft.com/it-it/library/ms187104.aspx

    Per quanto riguarda il maximum degree of parallelism, credo che un buon punto di partenza sia quello da te indicato (uso bilanciato) per valutare l'impatto generale sul sistema, andando poi a modificare in caso di necessità. Penso che prima di stabilire un grado limitante sia opportuno verificare - a meno di esigenze specifiche - il comportamento del server demandandogli la gestione di questo aspetto.


    Emiliano Musso

    lunedì 28 aprile 2014 15:03
  • Ciao, aggiungo alla discussione due link (spero) interessanti

    Saluti
    Nino


    ...esistono i motori di ricerca, facci un salto e troverai molte delle risposte che ti darò io.

    lunedì 28 aprile 2014 15:47
    Moderatore
  • Allora:  

    Il MSSQLServer è una standard Edition, quindi nessun problema con due processori.
    Il risultato della exec master.dbo.sp_configure 'affinity mask' restituisce valore 0 
    (ho dovuto prima attivare quest'ultima lanciando sp_CONFIGURE 'show advanced options',1; RECONFIGURE)

    Ho controllato le proprietà dell'istanza e sotto il tab PROCESSORI vedo correttamente entrambi e apparentemente anche ben configurati : 

    Il team di sviluppo, però, mostrandomi il task manager, mi ha dimostrato la seguente situazione:

    Al lancio di una query "corposa" l'uso di un processore va al 50%. 
    Lanciandone un altra ugualmente corposa l'uso del processore resta al 50% ... e la macchina termina prima una e poi l'altra query senza alzarsi mai oltre il 50%. Per questo motivo si ha la sensazione che il secondo processore non sia utilizzato.

    Consigli in merito ?? 

    L'opzione "Numero massimo thread di lavoro" è corretta a 0 ?!?

    Grazie a tutti nuovamente.

    ciao.


    Hunternet

    martedì 29 aprile 2014 14:06
  • Le discussioni spesso sono interessanti non tanto per i contenuti ma per gli spunti di approfondimento che possono generare. Ho trovato molto interessante una vecchia discussione su UGISS nella quale si parla di un caso simile al tuo (http://community.ugiss.org/forums/p/3509/8765.aspx). In effetti andrebbe analizzato anche il lavoro dei programmatori...

    Per quanto riguarda il numero massimo thread di lavoro puoi fare riferimento alla seguente KB http://support.microsoft.com/kb/2157129/it ed al seguente documento http://msdn.microsoft.com/it-it/library/ms190219.aspx

    Altri due link interessanti (forse non proprio attinenti al problema) http://technet.microsoft.com/en-us/magazine/2007.10.sqlcpu.aspx http://msdn.microsoft.com/it-it/magazine/cc135978.aspx

    Saluti
    Nino


    ...esistono i motori di ricerca, facci un salto e troverai molte delle risposte che ti darò io.

    mercoledì 30 aprile 2014 06:32
    Moderatore
  • Grazie dei link ho letto tutto e a quanto mi hanno degli gli sviluppatori lanciano due query identiche da contesti diversi e si aspetterebbero di vedere utilizzata anche la seconda CPU mentre l'utilizzo totale resta sempre al 50% che viene comunque diviso tra le due CPU ma senza alzarsi ... 

    Ora mi chiedo, fatte le dovute verifiche e stabilito che sia Windows che MSSQLServer vedono correttamente le due CPU e sono configurati (credo) per utilizzarle al meglio, esiste un modo (magari da SQL) per mandare a palla entrambe le CPU e dimostrare che se c'è bisogno vengono utilizzate ?? Oppure... fare ulteriori analisi con performance monitor potrebbe essere d'aiuto ?

    Non so proprio come chiudere il caso ... :-(

    Grazie a tutti ancora.



    Hunternet

    mercoledì 30 aprile 2014 10:38