Ottimizzazione della memorizzazione nella cache BLOB per ambienti WAN (SharePoint Server 2010)

 

Si applica a: SharePoint Server 2010

Ultima modifica dell'argomento: 2016-11-30

In questo articolo viene descritto come utilizzare la memorizzazione nella cache BLOB in Prodotti Microsoft SharePoint 2013 per gli ambienti WAN.

La memorizzazione nella cache è generalmente considerata come un modo per migliorare la velocità effettiva nella pipeline di rendering, dal momento in cui viene ricevuta una richiesta sul server fino al momento in cui inizia il flusso della risposta al computer client. Sebbene si tratti di un aspetto importante delle prestazioni complessive del sito, in questa sezione viene trattata la memorizzazione nella cache in relazione a quanto segue:

  • Ruolo della configurazione server sulla memorizzazione nella cache del client.

  • Controllo della dimensione degli elementi trasmessi sulla rete dal server al client.

Informazioni sulla cache BLOB

La cache BLOB è un meccanismo disponibile solo con le caratteristiche di pubblicazione di SharePoint Server 2010. Questo la rende un candidato ideale per i siti portale aziendali basati sul modello di sito Portale di collaborazione e per i siti esposti a Internet basati sul modello di sito Portale di pubblicazione. La cache BLOB consente di configurare le direttive di memorizzazione nella cache associate agli elementi ottenuti dagli elenchi di siti di pubblicazione, ad esempio la raccolta Pagine e Immagini raccolta siti. Quando il browser nel computer client rileva una direttiva di memorizzazione nella cache, rileva che l'elemento recuperato può essere salvato localmente e non deve essere richiesto nuovamente fino alla scadenza della direttiva di memorizzazione nella cache. Si tratta di un aspetto importante in un ambiente distribuito in diverse aree geografiche perché riduce il numero di elementi richiesti e inviati sulla rete.

Quando la cache BLOB in SharePoint Server 2010 è disattivata, si verificano due situazioni. In primo luogo, ogni volta che viene richiesto un elemento memorizzabile nella cache, SharePoint Server 2010 esegue una ricerca nell'unità disco rigido del server Web che ha ricevuto la richiesta per verificare se esiste una copia localmente. In caso affermativo, il file viene trasmesso direttamente dal disco locale all'utente. Se non si trova sul disco locale, viene effettuata una copia dell'elemento dal database SQL in cui è archiviato, quindi l'elemento viene inviato all'utente che ha effettuato la richiesta. In seguito, tutte le richieste dell'elemento verranno soddisfatte direttamente dal server Web finché il valore di inserimento nella cache non indicherà che è scaduto. Questo determina un miglioramento delle prestazioni nella server farm riducendo i conflitti sul server di database.

L'altro effetto determinato dall'attivazione della cache BLOB consiste nell'aggiunta di un'intestazione di inserimento nella cache quando l'elemento viene inviato al client. Questa intestazione indica al browser per quanto tempo l'elemento deve essere memorizzato nella cache. Ad esempio, se il valore di inserimento nella cache di un'immagine è pari a tre giorni, il browser utilizza la copia dell'immagine di cui dispone nella cache locale se l'immagine viene richiesta nuovamente entro i tre giorni successivi, senza richiederla nuovamente al server.

Utilizzo di Fiddler per raccogliere dati sulla cache BLOB

Per testare il sito in modo da individuare gli elementi memorizzati nella cache e la relativa modalità di memorizzazione nella cache, è possibile utilizzare, è possibile utilizzare un'applicazione di debug gratuita denominata Fiddler (le informazioni potrebbero essere in lingua inglese) (http://www.fiddlertool.com). Nella cattura di schermata seguente è mostrata un'acquisizione di Fiddler su un unico sito di SharePoint utilizzato per la pubblicazione. Il sito è stato creato utilizzando il modello di sito predefinito Portale di collaborazione. Alla pagine è stato aggiunto ulteriore contenuto di testo e alla pagina master sono state aggiunte diverse immagini.

Risultati strumento Fiddler

Nell'applicazione Fiddler sono contenute molte informazioni importanti.

  • La colonna # a sinistra indica che in totale sono pervenute 44 richieste HTTP dal browser al server per il rendering della pagina.

  • La colonna Result indica il codice HTTP restituito dalla richiesta dell'elemento. Il valore 200 indica che l'elemento è stato recuperato correttamente.

  • La colonna URL indica quale elemento specifico è stato richiesto.

  • La colonna Body indica la dimensione di ogni elemento.

  • La colonna Caching mostra la direttiva di memorizzazione nella cache associata a ogni elemento. I dati nella colonna Caching mostrano che a molti elementi è associata una direttiva di memorizzazione nella cache, ovvero gli elementi includono un attributo max-age maggiore di 0. Le direttive di memorizzazione nella cache sono espresse in secondi. Di conseguenza, per la pagina illustrata diversi elementi sono configurati per essere memorizzati nella cache per 365 giorni (60 secondi in un minuto, 60 minuti in un'ora, 24 ore in un giorno = 60x60x24 = 86.400x365 = 31.536.000).

Si noti che gli elementi associati a una direttiva della cache si trovano tutti nella directory _layouts. Il motivo per cui gli elementi sono associati a questa impostazione della cache è dovuto alla modalità di configurazione della directory virtuale _layouts/images in IIS. Quando si crea una nuova applicazione Web, in SharePoint Server 2010 vengono automaticamente create diverse directory virtuali mappate a cartelle nei dischi fisici del server Web. Quando viene creata la directory virtuale _layouts/images, viene aggiunta una direttiva di memorizzazione nella cache applicata all'intera directory. La cattura di schermata seguente mostra la configurazione della directory nello snap-in Manager IIS.

Finestra di dialogo Imposta intestazioni risposte HTTP comuni

Poiché agli elementi è associata una direttiva di memorizzazione nella cache diversa da zero, alla successiva richiesta della pagina il browser utilizzerà la copia dell'elemento memorizzata nella cache del browser locale anziché richiederla nuovamente al server. Nella cattura di schermata seguente viene illustrato uno snapshot di Fiddler quando la pagina viene richiesta una seconda volta.

Risultati strumento Fiddler

Come indicato dai dati di Fiddler, il numero di elementi richiesti è diminuito significativamente, da 44 a 11. Un importante elemento da notare è che il numero di richieste inviate può variare a seconda della modalità utilizzata per richiedere la pagina. Se si utilizza il pulsante Aggiorna nel browser, è probabile che tutti gli elementi vengano richiesti di nuovo, indipendentemente dal fatto che sia disponibile una versione locale memorizzata nella cache o meno. Al contrario, se la pagina viene richiesta accedendovi tramite un collegamento, verranno richiesti solo gli elementi non memorizzati nella cache.

Un altro elemento importante indicato dai dati di Fiddler è che il browser richiede al server le altre immagini nella pagina master che sono già disponibili nella cache locale, come indicato dal codice di risposta 304. Ciò significa che il browser ha inviato una richiesta condizionale di un elemento. La risposta 304 indica che la versione nel server non è stata modificata rispetto alla versione presente nel client e che pertanto non deve essere scaricata di nuovo. Anche se il file non viene scaricato in rete, ha comunque generato un round trip al server per determinare se la copia locale è aggiornata. Poiché in un ambiente geograficamente distribuito i round trip del server sono onerosi, l'obiettivo principale consiste nel ridurli quanto più possibile. Questo obiettivo può essere raggiunto aggiungendo una direttiva di memorizzazione nella cache diversa da zero a ognuno degli elementi rimanenti diversi dalla pagina, che viene sempre restituita dal server. La cache BLOB è la caratteristica responsabile dell'aggiunta di questa direttiva di memorizzazione nella cache.

Configurazione della cache BLOB utilizzando Web.config

La cache BLOB viene configurata utilizzando il file Web.config per l'applicazione Web in cui verrà utilizzata la cache. Aprire il file Web.config in un editor di testo, ad esempio il Blocco note, e individuare la voce BlobCache. Per impostazione predefinita, la voce sarà come la seguente BlobCache. Per impostazione, risulterà quanto segue:

<BlobCache location="" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$" maxSize="10" enabled="false" />

Gli attributi utilizzati nell'elemento BlobCache hanno i seguenti significati:

  • location    Percorso nel disco rigido del server Web in cui verranno archiviati gli elementi memorizzati nella cache.

  • path   Espressione regex dei tipi di file da memorizzare nella cache.

  • maxSize **   **Dimensione, in GB, utilizzabile dalla cache.

  • enabled    Impostato su true per abilitare la cache BLOB.

L'attributo aggiuntivo seguente, non incluso per impostazione predefinita, è necessario per impostare un valore di scadenza per la memorizzazione nella cache di singoli elementi.

  • max-age   Periodo di tempo in secondi per cui gli elementi devono essere memorizzati nella cache del computer client.

Se l'attributo max-age viene impostato su un valore diverso da zero, gli elementi da memorizzare nella cache saranno associati a un valore di scadenza della cache, in modo che il browser non debba più scaricarli né verificare di disporre della versione più recente. Si supponga, ad esempio, di voler abilitare la memorizzazione nella cache e allocare fino a 100 MB nel server Web per archiviare gli elementi, in modo che gli elementi scadano una volta al giorno e che, oltre ai tipi predefiniti, vengano memorizzati nella cache anche i file con estensione htc. Per soddisfare tali requisiti, specificare gli attributi BlobCache seguenti:

<BlobCache location="C:\blobcache" path="\.(gif|jpg|png|css|js|htc)$ " maxSize="100" max-age="86400" enabled="true"/>

Si noti che questa modifica al file Web.config deve essere apportata in ogni server Web nella farm. Nella maggior parte dei casi, la cache BLOB sarà immediatamente operativa, ma è più sicuro utilizzare il comando iisreset per l'implementazione delle modifiche. Nella cattura di schermata seguente vengono illustrati i dati di Fiddler per la stessa richiesta di pagina illustrata in precedenza, ma con la cache BLOB abilitata in base a quanto descritto.

Risultati strumento Fiddler

Si noti che tutti gli elementi inclusi nella raccolta /SiteCollectionImages sono associati al codice di stato HTTP 200, a indicarne il corretto download. Agli elementi è inoltre associata una direttiva di memorizzazione nella cache che specifica che non scadranno per un giorno (86.400 secondi). Se la pagina viene richiesta di nuova, Fiddler indica che nessuna delle immagini viene nuovamente richiesta. Il numero totale di richieste di fornitura della pagina è pertanto diminuito da 44 a 3 e due di queste richieste fanno parte della negoziazione dell'autenticazione NTLM che si verifica tra il server Web e l'applicazione client. Nella figura seguente vengono illustrati i dati di Fiddler quando la pagina viene richiesta di nuovo.

Risultati strumento Fiddler

Ulteriori considerazioni per l'utilizzo della cache BLOB

Quando si utilizza la cache BLOB, tenere presenti anche le considerazioni seguenti:

  • La cache BLOB richiede un impegno aggiuntivo per la configurazione dato dalla necessità di aggiornare il file Web.config in ogni server Web. I vantaggi ottenuti, tuttavia, giustificano ampiamente tale impegno.

  • Analizzare il contenuto del sito e determinare se sono presenti altri tipi di file da fornire dalla cache. Un esempio è costituito dai file con estensione htc. Poiché viene utilizzato nella maggior parte dei siti di pubblicazione, è consigliabile aggiungere questo tipo di file all'elenco dei tipi di file da memorizzare nella cache.

  • È possibile utilizzare la cache BLOB solo per gli elementi archiviati in raccolte SharePoint e non per memorizzare contenuto proveniente da altre origini.

  • Per impostazione predefinita, alcuni elenchi non possono essere utilizzati da utenti anonimi. Se vi sono utenti anonimi che accedono al sito, è necessario configurare manualmente le autorizzazioni per gli elenchi seguenti in modo da consentire la memorizzazione nella cache degli elementi in essi contenuti:

    • Raccolta pagine master

    • Raccolta stili

Vi sono altre due opzioni di configurazione da tenere presenti quando si utilizza la cache BLOB. La prima riguarda la cancellazione della cache BLOB. Se la cache deve essere cancellata per un sito specifico, accedere alla raccolta siti e fare clic su Azioni sito, su Impostazioni sito e quindi su Modifica tutte le impostazioni di sito. Nell'elenco di attività Amministrazione raccolta siti fare clic sul collegamento Cache oggetti raccolta siti. Nella sezione Reimpostazione cache basata su disco selezionare la casella di controllo Imponi reimpostazione cache basata su disco del server e quindi fare clic su OK.