Microsoft SharePoint 2010: Codice sandbox per l'analisi e il package

Analisi e packaging corretti delle soluzioni da eseguire in un ambiente sandbox garantiscono un miglior controllo dell'utilizzo e della scalabilità delle risorse.

V. Gnanasekaran

Quando si compila una soluzione di Web aziendale basata su SharePoint 2010, performance tuning e test è una parte importante del ciclo di sviluppo. Se la soluzione include un sacco di codice personalizzato, quindi esso non è solo importante, che è essenziale.

SharePoint ti dà molte opzioni di personalizzazione, come Web part, ricevitori personalizzati, azioni personalizzate e così via. Hai anche le opzioni per i modelli differenti di esecuzione per darvi un controllo maggiore di prestazioni, sicurezza e alta disponibilità. Una soluzione"sandbox" è un tale modello di esecuzione.

È possibile creare un profilo delle prestazioni dei blocchi di codice che costruire da eseguire in un ambiente sandbox utilizzando il profiler di Visual Studio 2010 standalone. Un altro fattore importante che interesserà le prestazioni e la scalabilità delle soluzioni sandbox è il modo che assemblare e distribuire blocchi di codice personalizzato, ad esempio Web part. È possibile impacchettare tali componenti di sfruttare servizi sandbox in esecuzione su più server, soprattutto nella server farm di grandi aziende.

SharePoint 2010 dispone di vari strumenti per aiutarvi a identificare potenziali colli di bottiglia nel codice personalizzato da indagare il tempo impiegato per l'esecuzione di codice; chiama a risorse esterne, come servizi Web, database, le query di database e il numero di volte in cui le query vengono licenziate; e così via. È possibile utilizzare il Dashboard di sviluppatore per capire i blocchi di codice diverso tempo prendono da eseguire. È anche possibile analizzare il tempo di esecuzione con registri unificata Logging Service (ULS).

Taluni vincoli

Nel caso di soluzioni di sandbox, il cruscotto sviluppatore non forniscono alcuna informazione utilizzabile. Inoltre, ci non saranno tutte le informazioni circa la soluzione sabbiera esecuzione disponibili nel registro ULS. Componenti sandbox non sono ammessi per registrare le informazioni in registri ULS. Poiché SharePoint 2010 non aiuta a comprendere il comportamento dei blocchi di codice personalizzati in un ambiente sandbox, è necessario dipendono le funzionalità di profilatura di Visual Studio Team System2010.

Quando si tratta di analisi del codice, fondamentalmente hai due opzioni: Performance test i modelli di progetto in Visual Studio 2010, o usando un profiler di Visual Studio Team System standalone. Se siete i modelli di progetto di Visual Studio di test delle prestazioni, è necessario impostare il codice sorgente con tutte le dipendenze richieste nella stessa macchina dove è installato Visual Studio Team System (VSTS) 20 Ultimate Edition. Solo sarete in grado di utilizzare questo nell'ambiente di sviluppo. Tieni presente che esso non cogliere i dettagli relativi all'esecuzione di codice in un ambiente sandbox, né funziona con le raccolte di siti di intestazione Host.

Se stai usando un profiler di Visual Studio Team System standalone, non sarà necessario il codice sorgente. Funziona con output compilato. È possibile utilizzare in ambienti a Monte — come tappa, utente accettazione Testing (UAT), nei pressi di produzione e così via — dove non è consentita l'installazione di strumenti di sviluppo. Questo metodo dà anche qualche flessibilità, così è possibile profilo eventuali processi oltre a w3wp. Ciò consente di estrarre i dettagli relativi all'esecuzione di codice in un ambiente sandbox in termini di memoria e tempi di esecuzione.

Nel caso di blocchi di codice in un ambiente sandbox, la seconda opzione funziona bene, quanto ti dà la flessibilità al profilo di qualsiasi processo come richiesto. Nel caso di un profiler standalone, hai due opzioni:

  1. VSAspNetCmd.exe, che è destinata per la profilatura esclusivamente w3wp. exe.
  2. VSPerfCmd. exe, che è possibile utilizzare per profilare qualsiasi processo.

I rapporti che profiler di questi generano volontà darvi informazioni più dettagliate rispetto il cruscotto di sviluppatore, comprese le informazioni di "livelli". Si tratta di informazioni relative alle richieste di chiamata imbattersi, macchine e reti per le risorse esterne, come la soluzione di database sandbox.

Nel caso di questa soluzione di sandbox, è possibile utilizzare due opzioni: L'intero codice in esecuzione in un processo di sandbox, oppure utilizzando un proxy di attendibilità (ibrido). A volte, per evitare le restrizioni del processo sabbiera, dovrebbe eseguire il codice in un proxy di attendibilità. In entrambi i casi, l'esecuzione di codice non avverrà in w3wp. exe, perché questo è ciò che accade nelle soluzioni basate su fattoria, out-of-the-box e codice personalizzato. Quindi, profilatura w3wp. exe non produrre alcun risultato per i blocchi di codice di sandbox.

Basato sull'opzione che scegli, l'esecuzione del codice per la soluzione di sandbox avverrà in SPUCWorkerProcess. exe o SPUCWorkerProcessProxy.exe. Al fine di profile l'esecuzione di codice e capire il comportamento di codice, questi due processi sono profilati sulla base del modello scelto. Nel caso di una sandbox, sarò di profilo SPUCWorkerProcess. exe. Nel caso dell'approccio ibrido utilizzando un proxy di attendibilità, sarò di profilo SPUCWorkerProcessProxy.exe.

"VSPerCMD.exe" è progettato per profilare qualsiasi processo richiesto, è possibile utilizzare per analizzare i processi di SPUCWorkerProcess. exe e SPUCWorkerProcessProxy.exe. Questo genererà informazioni dettagliate che ti aiuterà a saperne di più sull'esecuzione di codice in un ambiente sandbox in termini di memoria e tempi di esecuzione.

Profilatura codice Sandbox

Quando profilatura codice sabbiera, avete due opzioni: campionamento e strumentazione. Campionamento vi darà informazioni dettagliate a un livello superiore. Strumentazione è preferito quando hai bisogno di un'analisi approfondita. In generale, il campionamento sarà sufficiente per requisiti comuni codice il profiling.

Ecco la sequenza di comandi necessari per l'esecuzione di un profilo. In primo luogo, è necessario impostare le variabili di ambiente necessari:

VSPerfClrEnv /globalsampleon

Riavviare la macchina, quindi utilizzare il comando seguente:

VSPerfClrEnv /globalinteractionon

Il comando "globalsampleon" imposta il profilo di effettuare il campionamento. Il comando "globalinteractionon" consente di raccogliere le informazioni di interazione a livelli il profiler. Dopo aver impostato le variabili di ambiente, riavviare la macchina.

Il profiler non è coerenza nel fornire informazioni di livello. Così quando informazioni a livelli non sono disponibile, è necessario impostare queste variabili e riavviare la macchina. Questo è il comportamento naturale della versione corrente del profiler.

Nel passaggio successivo dopo aver riavviato la macchina, ha istituito il profiler con nome file di output e di campionamento.

Avviare l'applicazione Web rispettivo. Identificare l'ID di processo del processo per quell'applicazione rispettivo — se eseguono applicazioni Web multiple in quella macchina — quindi applicare il codice seguente:

VSPerfCmd /Start:Sample /Output:<FILE_NAME>.vsp /user:everyone /CrossSession

Prossimo, basato sul modello di esecuzione si sceglie, identificare "SPUCWorkerProcess. exe" o "SPUCWorkerProcessProxy.exe" e il profiler attribuiranno al processo di scelto:

VSPerfCmd /Attach:<PROCESS-ID>

Eseguire le azioni dell'utente di tale applicazione Web:

VSPerfCmd /Detach:<PROCESS-ID> VSPerfCmd /Shutdown

Se affrontate questioni legate ai simboli, quindi collegare quei simboli delle relazioni:

VSPerfReport.exe /summary:all /packsymbols <ReportName.VSP>

Infine, reimpostare le variabili di ambiente:

vsperfclrenv /globaloff

È possibile aprire i report che questo profiler genera in Visual Studio 2010 Ultimate edition per identificare i percorsi"caldi" e comprendere il comportamento di codice in un ambiente sandbox. Questo aiuterà a prendere le appropriate misure correttive per ottimizzare le prestazioni.

Assicurarsi che l'ambiente di Visual Studio è impostato con i simboli adeguati per aprire il report senza perdita di informazioni. Nelle macchine con stand-alone profiler installato con qualsiasi edizione di Visual Studio 2010 (eccetto Ultimate), si potrebbero incontrare errori. Si consiglia di installare solo i profiler autonomo.

Imballaggio di soluzione

Quando si tratta di soluzioni di packaging sandbox, è necessario considerare le configurazioni a livelli. Livelli nelle soluzioni di sandbox forniscono un modo per soluzioni di sandbox gruppi sulla base dei requisiti delle risorse. Configurando i livelli per eseguire più processi, è possibile eseguire più soluzioni sabbiera contemporaneamente all'interno di una fattoria. Si può avere un massimo di 20 processi di lavoro su tutti i livelli su un singolo server.

Il numero di connessioni per ogni processo deve essere minore o uguale al numero di domini di applicazione. Che il numero di connessioni deve anche essere inferiore per il livello in cui la proprietà "ResourceMaxValue" è impostata su un valore superiore.

È possibile eseguire solo una soluzione Sabbiera in ogni dominio applicazione in qualsiasi momento. Il numero di domini applicazione rappresenta il numero di soluzioni sandbox che è possibile caricare in qualsiasi punto. Un singolo file WSP rappresenta una soluzione di sandbox. Dopo aver caricato un pacchetto WSP, potete vedere che lo elencati con le altre soluzioni sabbiera nella Galleria soluzione.

È possibile configurare soluzioni Sabbiera in modalità locale o in modalità remota. Sarebbe utilizzare modalità remota negli scenari dove l'azienda ha dedicato server per l'esecuzione di codice sandbox e scalabilità.

Così, se tutte le Web part e i blocchi di codice personalizzati sono confezionati come parte di un singolo pacchetto, quel pacchetto verrà caricato in un livello in un dominio applicazione. Altri domini di applicazione rimangono nel livello stesso e non utilizzate, così non ci sarà alcuna distribuzione del carico attraverso livelli e i server. Ciò potrebbe causare prestazioni e scalabilità strozzature.

Blocchi di codice sabbiera confezionati in tutto più pacchetti si tradurrà in molteplici soluzioni di sandbox. Ciò offre i seguenti vantaggi:

  1. Avendo molteplici soluzioni sabbiera aiuta a migliora il controllo delle risorse. Questo ti aiuta a capire quale soluzione sandbox è alto nel consumo di risorse. Poi si può guardare per qualsiasi possibilità di ottimizzare il consumo di risorse per quella soluzione particolare sandbox. Questo aiuta anche a livelli di pianificazione. Avendo tutti i blocchi di codice di sandbox in un unica soluzione o un pacchetto non darà alcun dettaglio sull'uso delle risorse del particolare Web part o blocchi di codice di sandbox.
  2. È possibile effettuare una configurazione a livelli basata sull'uso di risorse media delle soluzioni individuali sandbox, quindi comporterà l'utilizzo corretto delle risorse del server.
  3. Il processo di distribuzione sarà più facile. Singole Web part e i gruppi possono essere distribuite o aggiornati facilmente invece di distribuire l'intera soluzione per fornire un aggiornamento minore per una determinata Web part.

Basato su questi fattori, è meglio raggruppare logicamente Web part e altri blocchi di codice attraverso più pacchetti di soluzione invece di imballaggio li tutti in una soluzione unica sandbox. Codice corretto sabbiera bloccare l'imballaggio attraverso una soluzione diversa pacchetti contribuirà a dare maggiore spaccato l'utilizzo delle risorse per i blocchi di codice differenti sandbox.

Una volta che hai una visione migliore nell'utilizzo delle risorse, è possibile utilizzare l'esercizio di analisi per identificare potenziali aree di miglioramento nelle diverse parti dei blocchi di codice (in termini di prestazioni) e a svolgere attività di ottimizzazione del codice. Si può anche migliorare le prestazioni, la scalabilità e l'utilizzo efficace delle risorse.

V. Gnanasekaran

V. Gnanasekaran ha più di 14 anni di esperienza come un TOGAF 9 Certified Enterprise Architect e parte del Microsoft Consulting Services India, dove egli fornisce servizi di consulenza architettoniche ai clienti. Le sue attuali aree di messa a fuoco includono SharePoint, SQL Server OLAP/OLTP e Windows Azure. Ha pubblicato articoli di tecnologia in diverse riviste tra cui The Architecture Journal e CodeProject. Ha blog a gnanasekaran.com.

Contenuto correlato