Questo è un po 'complicato per rispondere senza sapere che tipo di prodotti "off the shelf" si sta tentando di valutare. Stai cercando reattività dell'interfaccia utente, throughput (ad es. Email, transazioni/sec), tempo di avvio, ecc. - tutti questi hanno criteri diversi per le misure da monitorare e diversi strumenti per testare o valutare. Ma per rispondere ad alcune delle vostre domande generali:
Credibilità: questo è importante. Cerca di assicurarti che qualsiasi cosa tu stia misurando ha una piccola corsa per eseguire la varianza. Utilizza la tecnica di eseguire più esecuzioni dello stesso scenario, sbarazzati dei valori anomali (ad esempio il più basso e il più alto) e valuta i tuoi valori media/massima/minima/media. Se stai facendo una sorta di test del throughput, considera la possibilità di eseguirlo a lungo in modo da avere un buon campionamento. Ad esempio, se stai cercando qualcosa come Microsoft Exchange e quindi stai usando i loro contatori perf, prova ad assicurarti di prendere campioni frequenti (una volta al secondo o ogni pochi secondi) e fai eseguire il test per circa 20 minuti. Ancora una volta, elimina i primi minuti e gli ultimi minuti per eliminare qualsiasi rumore di avvio/arresto.
Heisenburg - difficile. Nella maggior parte dei sistemi moderni, a seconda di quale applicazione/misura si sta misurando, è possibile ridurre al minimo questo impatto, essendo intelligenti su cosa/come si misura. A volte (come nell'esempio di Exchange), vedrai l'impatto vicino a 0. Cerca di utilizzare gli strumenti meno invasivi possibile. Ad esempio, se stai misurando il tempo di avvio, considera l'utilizzo di xperfinfo e utilizza gli eventi incorporati nel kernel. Se stai usando perfmon, non riempire il sistema con contatori estranei di cui non ti importa. Se stai eseguendo alcuni test di lunga durata, esegui il crollo dell'intervallo di campionamento.
Provare anche ad eliminare qualsiasi fonte di variabilità dell'ambiente o possibili fonti di rumore. Se stai facendo qualcosa di intenso sulla rete, considera l'isolamento della rete. Prova a disabilitare qualsiasi servizio o applicazione che non ti interessa. Limita qualsiasi tipo di I/O del disco, operazioni che richiedono un uso intensivo della memoria, ecc. Se l'I/O del disco potrebbe introdurre del rumore in un componente collegato alla CPU, considerare l'utilizzo di SSD.
Quando si progettano i test, tenere presente la ripetibilità. Se si esegue una sorta di test del tipo microbenchmark (ad esempio, test dell'unità perf), il supporto dell'infrastruttura esegue la stessa operazione n volte esattamente la stessa. Se stai guidando l'IU, prova a non guidare fisicamente il mouse e usa invece il livello di accessibilità sottostante (MSAA, UIAutomation, ecc.) Per colpire i controlli direttamente a livello di codice.
Anche in questo caso, questo è solo un consiglio generale. Se hai altre specifiche, posso provare a dare seguito con una guida più efficace.
Divertiti!
Questa domanda è come un buco nero .. non posso credere che nessuno abbia pensieri su questo. – Nix
Stai cercando specifici vantaggi in termini di prestazioni, ad es. utilizzo della memoria, velocità, velocità effettiva, accesso I/O? Perfmon (supponendo che tu stia usando Windows) va bene per questi, dato che i contatori sono ancora scritti, anche se non li stai usando. –