Discussione:
Consigli su performance monitor
(troppo vecchio per rispondere)
Selvad
2005-01-31 12:05:31 UTC
Permalink
Ciao a tutti.
Ho un'applicazione WEB che accede ad un server SQL. Durante test di stress
ho visto che l'applicazione è molto lenta. Vorrei capire quanto dipende
dalla macchina con IIS e quanto da quella con SQL Server.
Vorrei provare ad usare Performance monitor, durante il test. Quali sono gli
indici che mi conigliate di monitorare?

Grazie.
Andrea Benedetti
2005-01-31 12:58:28 UTC
Permalink
Salve Selvad,
Post by Selvad
Ciao a tutti.
Ho un'applicazione WEB che accede ad un server SQL. Durante test di stress
ho visto che l'applicazione è molto lenta. Vorrei capire quanto dipende
dalla macchina con IIS e quanto da quella con SQL Server.
Vorrei provare ad usare Performance monitor, durante il test. Quali sono
gli indici che mi conigliate di monitorare?
Per quanto riguarda SQL Server il prodotto migliore che hai a disposizione
per tracciarne l'utilizzo è SQL Server Profiler.
Si tratta di una utilità raggiungibile da start --> programmi --> microsoft
sql server --> profiler; oppure da enterprise manager: tools --> sql
profiler

Una volta aperto il programma:
file --> new --> trace
Esegui la connessione al server sql che vuoi tracciare
Nella finestra proprietà della traccia che si aprirà a video puoi definire
tutta una serie di opzioni come, ad esempio, quella di voler registrare
soltanto gli eventi relativi alle stored procedures ed alle istruzioni T-SQL
(il dialetto sql server).

Premendo il pulsante "run" inizierà la registrazione della traccia.

A questo punto:
a) stressi la tua applicazione web
b) stoppi la traccia in registrazione
c) analizzi il lavoro che sql server ha svolto (studiando eventuali colli di
bottiglia, cicli cpu devastanti, tempi di esecuzione lentissimi... ;-) e
così via)
Post by Selvad
Grazie.
Prego,
Andrea
Selvad
2005-01-31 14:37:07 UTC
Permalink
"Andrea Benedetti" ha scritto nel messaggio ...

[CUT]
Post by Andrea Benedetti
c) analizzi il lavoro che sql server ha svolto (studiando eventuali colli
di bottiglia, cicli cpu devastanti, tempi di esecuzione lentissimi... ;-)
e così via)
I punti precedenti avevo già provato a farli. A questo punto mi ero
ritrovato con una traccia ma non sapevo che farne. Nella traccia ho
EventClass, TextData, ApplicationName, NTUserName, LoginName, CPU, Reads,
Writes, Duration, ClientProcessID, SPID, StartTime. I campi che mi
dovrebbero interessare sono CPU, Reads e writes giusto? Ma quali sono le
unita di misura? CPU=15 cosa significa (15 millisec?).
I tempi di duration e cpu non vanno mai sopra i 20, è un buon segno?

Ciao.
Andrea Benedetti
2005-01-31 15:00:59 UTC
Permalink
Salve Selvad,
Post by Selvad
I punti precedenti avevo già provato a farli. A questo punto mi ero
ritrovato con una traccia ma non sapevo che farne. Nella traccia ho
EventClass, TextData, ApplicationName, NTUserName, LoginName, CPU, Reads,
Writes, Duration, ClientProcessID, SPID, StartTime. I campi che mi
dovrebbero interessare sono CPU, Reads e writes giusto?
Direi di si... e, chiaramente, TextData per conoscere l'istruzione
interessata
Post by Selvad
Ma quali sono le unita di misura? CPU=15 cosa significa (15 millisec?).
Si, come scritto nei booksonline la colonna CPU indica il tempo utilizzato
dall'evento espresso in millisecondi .
Post by Selvad
I tempi di duration e cpu non vanno mai sopra i 20, è un buon segno?
Chiaramente più è basso il valore meno tempo sql server impiega alla
risoluzione dell'istruzione ;-)
Post by Selvad
Ciao.
Ciao,
Andrea
Luigi
2005-01-31 16:25:17 UTC
Permalink
Dove esiste una buona guida su come usare il Profiler?
Grazie
Andrea Benedetti
2005-01-31 16:58:56 UTC
Permalink
Salve Luigi,
Post by Luigi
Dove esiste una buona guida su come usare il Profiler?
I books online in primis.

E poi prova a dare un'occhiata con amazon:
- Inside Microsoft SQL Server 2000
- Microsoft SQL Server 2000 Unleashed
- Microsoft SQL Server 2000 Optimization Guide

E poi questo newsgroup...
Post by Luigi
Grazie
Prego,
Andrea
Luigi
2005-02-01 08:35:09 UTC
Permalink
Grazie per le segnalazione delle fonti Andrea (riferito sia a Benedetti che a
Montanari ;-))
Andrea Montanari
2005-01-31 17:55:12 UTC
Permalink
salve Luigi,
Post by Luigi
Dove esiste una buona guida su come usare il Profiler?
Grazie
chiaramente, come Andrea ha gia' riportato, i BOL...
poi puoi trovare risorse simili a
http://www.sql-server-performance.com/sql_server_profiler_tips.asp
http://www.winnetmag.com/SQLServer/Article/ArticleID/20126/20126.html

saluti
--
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtm http://italy.mvps.org
DbaMgr2k ver 0.10.0 - DbaMgr ver 0.56.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply
Luca Bianchi
2005-01-31 18:28:15 UTC
Permalink
Post by Selvad
Ciao a tutti.
Ho un'applicazione WEB che accede ad un server SQL. Durante test di stress
ho visto che l'applicazione è molto lenta. Vorrei capire quanto dipende
dalla macchina con IIS e quanto da quella con SQL Server.
Vorrei provare ad usare Performance monitor, durante il test. Quali sono
gli indici che mi conigliate di monitorare?
I suggerimenti relativi a SQL Profiler ti aiuteranno ad individuare il
carico di lavoro che arriva a SQL Server. La misurazione dell'hardware,
però, resta affidata a Performance Monitor e ti consiglio di iniziare con il
monitoraggio dei seguenti contatori

% Processor Time (oggetto Processor)
Avg. DiskQueueLength (oggetto Physical Disk)
Pages/sec (oggetto Memory)
Cache Hit Ratio (oggetto SQL Server Cache Manager)

Non sono in grado di indicarti eventuali contatori specifici di IIS ma credo
che sia fondamentale verificare che l'attività della scheda di rete non sia
troppo vicina ai suoi limiti. Quindi il contatore Bytes/sec dell'oggetto
Network Interface dovrebbe fare al caso tuo...
Post by Selvad
Grazie.
Bye


LB
Luigi
2005-02-01 09:05:02 UTC
Permalink
Ciao Luca, e riguardo ai possibili contatori da utilizzare nel Profiler di
SQL Server, in paricolare per monitorare le prestazioni del database vero e
proprio, cosa consiglieresti di usare come parametri?
Lasciare quelli di default nel Tab Eventi?
Grazie
Andrea Benedetti
2005-02-01 09:47:41 UTC
Permalink
Salve Luigi,
Post by Luigi
Ciao Luca, e riguardo ai possibili contatori da utilizzare nel Profiler di
SQL Server, in paricolare per monitorare le prestazioni del database vero e
proprio, cosa consiglieresti di usare come parametri?
Lasciare quelli di default nel Tab Eventi?
Potrebbero bastarti anche solo:
- Stored procedures - rpc: completed
- TSQL - SQL: BatchCompleted

Comunque dai un'occhiata a tutte le classi di eventi che sono tracciabili e,
a seconda delle tue specifiche esigenze, seleziona ciò che ti interessa.
Post by Luigi
Grazie
Prego,
Andrea
Luigi
2005-02-01 10:49:13 UTC
Permalink
Grazie Andrea

Loading...