Memorizzazione nella cache in Office SharePoint Server 2007

Contenuto dell'articolo:

  • Cache di output

  • Cache oggetti

  • Cache basata su disco per BLOB

In Microsoft Office SharePoint Server 2007 sono disponibili funzionalità avanzate per la memorizzazione nella cache che consentono di ottimizzare le prestazioni dei siti Web. In questo articolo vengono descritti i diversi tipi di cache disponibili e viene illustrato come ottimizzare la memorizzazione nella cache in base ai requisiti specifici della distribuzione.

Nella tabella seguente sono riportati i tipi di cache disponibili e il livello a cui ogni tipo viene implementato.

Tipo di cache da utilizzare Livello di implementazione Note

Cache di output e profili di cache

A livello di singola pagina

Ideale per i siti Web con un numero estremamente elevato di accessi in cui non è necessario presentare frequentemente nuovo contenuto

Cache oggetti

A livello di singolo controllo web part, controllo campo e contenuto

Include cache delle query tra elenchi e cache della struttura di spostamento

Cache basata su disco per oggetti binari di grandi dimensioni (BLOB)

A livello di singolo BLOB

Supporta file con estensione gif, jpg, js e css e altri tipi di file immagine, audio e di codice archiviati come BLOB

Cache di output

Microsoft Office SharePoint Server 2007 utilizza la tecnologia della cache di output nativa di ASP.NET 2.0 per gestire quando e come viene fornito il contenuto di pagina. Il corretto utilizzo della cache di output consente di migliorare significativamente la velocità effettiva e il tempo di risposta utente.

In un sito con ASP.NET, il codice HTML generato in fase di esecuzione da ogni pagina Web viene memorizzato nella cache di output di ASP.NET in base al profilo di cache specificato. In un sito Web con un numero estremamente elevato di accessi, la memorizzazione nella cache delle pagine visitate frequentemente anche per un minuto per volta può garantire vantaggi notevoli in termini di velocità effettiva. Mentre una pagina è memorizzata nella cache di output, le successive richieste della pagina da parte degli utenti con autorizzazioni simili vengono gestite dalla cache di output senza esecuzione del codice o del controllo da cui è stata creata, per la durata specificata della cache.

Nota

La memorizzazione nella cache di output può essere utilizzata in un sito o una raccolta siti solo in caso di attivazione della caratteristica Infrastruttura di pubblicazione Office SharePoint Server per la raccolta siti e della caratteristica Pubblicazione Office SharePoint Server per il sito. Per attivare e configurare la memorizzazione nella cache di output per la raccolta siti, fare clic su Cache di output raccolta siti nella pagina Impostazioni sito relativa alla raccolta siti e su Cache di output sito nella pagina Impostazioni sito relativa ai siti. Se non sono state attivate la caratteristica Infrastruttura di pubblicazione Office SharePoint Server per la raccolta siti e la caratteristica Pubblicazione Office SharePoint Server per il sito, i collegamenti Cache di output raccolta siti e Cache di output sito non vengono visualizzati nelle pagine Impostazioni sito e non è possibile attivare o configurare la memorizzazione nella cache di output.

   

Per ulteriori informazioni sull'attivazione della memorizzazione nella cache di output, vedere Cache di output e profili di cache (https://go.microsoft.com/fwlink/?linkid=78928&clcid=0x410).

Considerazioni sulla cache di output

Prima di scegliere di utilizzare la cache di output per migliorare le prestazioni di rendering delle pagine e dei relativi elementi, considerare i vantaggi e le limitazioni di un'implementazione della cache di output.

I vantaggi sono i seguenti:

  • La cache di output è la soluzione ideale per i siti Web che non richiedono un continuo aggiornamento del contenuto. In questo ambiente, l'output memorizzato nella cache può essere visualizzato a utenti diversi senza accedere al database o rieseguire il codice o i controlli da cui è stato inizialmente creato il codice HTML della pagina Web.

  • La cache di output può essere utilizzata per utenti anonimi e utenti autenticati, ma offre la massima efficacia in caso di accesso anonimo. Consentire pertanto l'accesso utente anonimo ogni volta che risulta appropriato e fattibile per una parte del sito Web o l'intero sito.

Le limitazioni sono le seguenti:

  • La cache di output determina l'utilizzo di memoria aggiuntiva per memorizzare nella cache il codice HTML di ogni pagina nella cache. Assicurarsi di installare memoria fisica sufficiente per evitare problemi di paging o altri problemi di memoria del sistema.

  • Quando viene utilizzata con due o più server Web, la memorizzazione nella cache di output può influire sulla coerenza. È possibile configurare un profilo di cache in modo da non controllare gli eventuali aggiornamenti per ogni richiesta e, ad esempio, configurare il profilo in modo da ignorare le modifiche alla versione della pagina Web nella cache di output fino a 60 secondi dopo l'aggiornamento della pagina originale. Se la topologia include due server Web, a seconda del servizio di bilanciamento del carico utilizzato per inviare la richiesta dell'utente è possibile che a un lettore venga visualizzato contenuto incoerente se viene eseguito il rendering della pagina da un server e quindi viene inviata una richiesta successiva a un secondo server nella finestra temporale di 60 secondi. Se nel profilo di cache è attivato il controllo delle modifiche, l'efficacia della cache di output risulterà ridotta.

  • In caso di attivazione della cache di output per utenti con autorizzazioni di scrittura per una raccolta siti, è possibile che a tali utenti non vengano visualizzati i dati più aggiornati nelle pagine Web della raccolta siti finché le pagine memorizzate nella cache di output non scadono. Ciò in genere non influisce direttamente sul contenuto di una pagina Web attualmente modificata o visualizzata dall'utente, ma può influire sui dati di riepilogo di un elenco o una raccolta, ad esempio sui dati presentati da una web part raccolta documenti. Per essere certi che gli utenti con autorizzazioni di scrittura possano visualizzare tutte le informazioni aggiornate, è pertanto consigliabile attivare la cache di output solo per gli utenti con autorizzazioni di sola lettura.

Comportamento di memorizzazione nella cache di output

È possibile specificare il comportamento di memorizzazione nella cache di output ai livelli seguenti:

  • Raccolta siti

  • Sito

  • Layout di pagina

Un amministratore di una farm, una raccolta siti o un sito specifico può ottimizzare il comportamento di memorizzazione nella cache per il livello per cui dispone di privilegi di amministratore applicando diversi profili di cache. È ad esempio possibile che la home page del sito presenti la massima frequenza di accesso e si può utilizzare un layout di pagina univoco per la home page per poter applicare un profilo di pagina a tale layout di pagina univoco e ignorare il comportamento di memorizzazione nella cache dell'intera raccolta siti. Si può invece configurare il profilo di cache del layout di pagina con una durata della cache superiore. Ciò consente di ottimizzare la tempestività dei dati per la home page, quando il compromesso tra prestazioni e tempestività è accettabile. Per le altre pagine del sistema, è possibile utilizzare un diverso profilo di cache con una durata della cache inferiore.

Memorizzazione nella cache dei risultati di ricerca

In un ambiente con autenticazione utente, è consigliabile non memorizzare mai nella cache i risultati di ricerca. Ciò può infatti consentire la divulgazione di informazioni riservate a utenti non autorizzati. Una query di ricerca filtra il set di risultati in modo da visualizzare soltanto le informazioni disponibili per l'utente corrente. In caso di memorizzazione dei risultati della ricerca nella cache, tuttavia, il codice che filtra il set di risultati viene ignorato. È pertanto possibile che utenti non autorizzati siano in grado di visualizzare risultati a cui non dovrebbero avere accesso. In un ambiente anonimo, invece, ciò non costituisce un problema poiché tutti i risultati di ricerca sono il risultato di richieste non autenticate.

Se nella raccolta siti è attivata la memorizzazione nella cache di output, è possibile disabilitare il layout di pagina dei risultati di ricerca eseguendo la procedura seguente.

Disabilitare il layout di pagina dei risultati di ricerca

  1. Nel sito principale della raccolta siti scegliere Impostazioni sito dal menu Azioni sito e fare clic su Modifica tutte le impostazioni di sito.

  2. Nella pagina Impostazioni sito fare clic su Cache di output raccolta siti nella sezione Amministrazione raccolta siti.

  3. Nella pagina Impostazioni cache di output raccolta siti selezionare la casella di controllo I layout di pagina possono utilizzare un profilo diverso per la cache di output delle pagine e quindi fare clic su OK.

  4. Nella sezione Raccolte della pagina Impostazioni sito fare clic su Pagine master e layout di pagina.

  5. Nella pagina Raccolta pagine master posizionare il puntatore su SearchResults.aspx, fare clic sulla freccia visualizzata, scegliere Modifica proprietà dal menu e quindi fare clic su OK nella finestra di dialogo visualizzata.

  6. Nella pagina Raccolta pagine master: SearchResults fare clic su Disattivato nell'elenco Profilo cache utenti autenticati e quindi fare clic su OK.

  7. Nella pagina Raccolta pagine master posizionare il puntatore su SearchResults.aspx, fare clic sulla freccia visualizzata e quindi scegliere Archivia dal menu visualizzato.

  8. Nella pagina Archivia selezionare Versione principale (pubblicazione) e quindi fare clic su OK. I risultati di ricerca per cui viene utilizzato quel determinato layout di pagina non verranno più memorizzati nella cache.

Limite relativo ai byte privati di ASP.NET

Se la memorizzazione nella cache di output è attivata, può essere opportuno estendere il limite predefinito di ASP.NET 2.0 per i byte privati. Tale limite indica ad ASP.NET quando dovrà essere eseguito lo scaricamento della cache di output. Uno scaricamento prematuro causa un calo non necessario delle prestazioni. Per ulteriori informazioni, vedere Elemento cache per caching (schema delle impostazioni ASP.NET) (https://go.microsoft.com/fwlink/?linkid=78934&clcid=0x410).

Versioni delle pagine memorizzate nella cache

È possibile che di alcune pagine Web vengano visualizzate versioni leggermente diverse a seconda degli utenti o di un'altra regola business. È possibile estendere la memorizzazione nella cache di output utilizzando l'API programmabile supportata per soddisfare l'esigenza di memorizzare diversamente gli elementi nella cache. Per ulteriori informazioni, vedere Procedura: estendere la memorizzazione nella cache mediante il gestore eventi VaryByCustom (https://go.microsoft.com/fwlink/?linkid=78935&clcid=0x410).

Cache di output e feed RSS di web part Query contenuto

La web part Query contenuto offre la possibilità di fornire feed RSS dei risultati visualizzati. Il feed RSS viene generato da una pagina con estensione aspx nel server, che genera il codice XML del feed RSS in base agli stessi risultati visualizzati nella web part Query contenuto.

Poiché in genere i client RSS richiedono un feed RSS dal server periodicamente, ad esempio ogni 30 minuti, è importante che la generazione del feed RSS venga eseguita in modo efficiente. La pagina aspx del feed RSS implementa pertanto la memorizzazione nella cache di output. Il codice sorgente del file con estensione aspx includerà pertanto la riga seguente:

<%@ OutputCache Duration="300" VaryByParam="xsl;web;page;wp" VaryByCustom="rights;feedresults"%>

In questo modo, il sistema memorizza nella cache i feed RSS di Query contenuto per cinque minuti (300 secondi) e memorizza nella cache versioni univoche dei feed RSS per ogni diversa web part Query contenuto nonché versioni univoche dei feed RSS per gli utenti con autorizzazioni diverse e risultati di feed diversi.

Se si desidera personalizzare la memorizzazione nella cache di output, è possibile creare una pagina aspx per i feed che implementa la stessa logica, ma contiene impostazioni diverse della cache di output. Le web part Query contenuto potranno quindi fare riferimento alla pagina aspx per i feed personalizzata anziché alla pagina predefinita.

Se nel sito sono presenti altre pagine riservate con lo stesso potenziale problema di protezione, è inoltre possibile disattivare l'intero sito Centro ricerche per disattivare la cache di output. Per disattivare la cache di output per il sito Centro ricerche, eseguire la procedura seguente.

Disattivare la cache di output per il sito Centro ricerche

  1. Nel sito principale della raccolta siti scegliere Impostazioni sito dal menu Azioni sito e fare clic su Modifica tutte le impostazioni di sito.

  2. Nella pagina Impostazioni sito fare clic su Cache di output raccolta siti nella sezione Amministrazione raccolta siti.

  3. Nella sezione Criteri cache di output delle pagine della pagina Impostazioni cache di output raccolta siti selezionare la casella di controllo I siti di pubblicazione possono utilizzare un profilo diverso per la cache di output delle pagine e quindi fare clic su OK.

  4. Sulla barra di spostamento superiore fare clic sulla scheda Ricerca.

  5. Nella home page del Centro ricerche scegliere Impostazioni sito dal menu Azioni sito e quindi fare clic su Modifica tutte le impostazioni di sito.

  6. Nella sezione Amministrazione sito della pagina Impostazioni sito relativa al sito Centro ricerche fare clic su Cache di output sito.

  7. Nella sezione Profilo cache utenti autenticati della pagina Impostazioni cache di output sito di pubblicazione selezionare il pulsante di opzione Eredita il profilo “Disattivato”.

  8. Se si desidera disattivare la cache di output utenti autenticati per tutti i siti secondari, è possibile facoltativamente selezionare la casella di controllo Applica queste impostazioni a tutti i siti secondari.

Cache oggetti

Microsoft Office SharePoint Server 2007 supporta la memorizzazione nella cache di determinati elementi di pagina, ad esempio i dati della struttura di spostamento e i dati accessibili mediante query tra elenchi. La memorizzazione nella cache degli elementi di pagina riduce l'esigenza di recuperare i dati dei campi dal database ogni volta che viene eseguito il rendering di una pagina. Con questo sistema, inoltre, vengono memorizzati nella cache i dati completi dei campi per una pagina escludendo i dati per i controlli web part della pagina.

Ottimizzazione della cache degli oggetti

Per impostazione predefinita, le dimensioni della cache degli oggetti sono impostate su 100 MB per raccolta siti. È tuttavia possibile modificare questa impostazione per ogni raccolta siti in base alle caratteristiche del sito Web. Per ottimizzare le dimensioni della cache degli oggetti si può utilizzare un insieme di contatori delle prestazioni. L'oggetto contatore delle prestazioni è denominato Cache pubblicazione SharePoint. È possibile impostare le dimensioni della cache degli oggetti sulla base del rapporto di riscontri nella cache e del cambiamento nei contatori delle eliminazioni di oggetti. Quando si imposta questo limite, tenere presente quanto segue:

  • Impostare inizialmente un valore basso, ad esempio 200 MB, e monitorare il rapporto di riscontri nella cache e il contatore delle eliminazioni di oggetti. Un rapporto di riscontri superiore al 90% e una bassa frequenza delle eliminazioni di oggetti costituiscono in genere indicazioni positive di dimensioni correnti appropriate. Per regolare questa impostazione è tuttavia consigliabile misurare anche il tempo di risposta utente per operazioni chiave.

  • Se si impostano dimensioni troppo elevate, potrebbe andare sprecata memoria preziosa per gli altri tipi di cache, ad esempio per la cache di output di ASP.NET, se utilizzata. Alcune web part, ad esempio la web part Query contenuto, archiviano i fogli di stile XSLT nella cache di output. Se vengono impostate dimensioni troppo elevate per la cache degli oggetti, ASP.NET potrebbe scaricare la memoria cache di output per ottenere lo spazio necessario e in seguito allo scaricamento potrebbe aumentare l'utilizzo della CPU. Questo aspetto è particolarmente importante per un sistema che esegue un sistema operativo a 32 bit poiché ogni processo di lavoro è limitato a uno spazio di memoria per le applicazioni di 2 GB. Se si imposta un limite troppo elevato per le dimensioni della cache degli oggetti, la memoria può risultare insufficiente per il processo di lavoro IIS (w3wp).

Cache delle query tra elenchi

La cache degli oggetti viene inoltre utilizzata per memorizzare elementi recuperati nell'ambito di query tra elenchi. Tali query, che aggregano elementi di diversi elenchi e siti della raccolta siti, vengono prevalentemente utilizzate nella web part Query contenuto. Ogni volta che viene utilizzata la query tra elenchi è necessario un round trip al server database. Utilizzando la cache degli oggetti è possibile ridurre significativamente il numero di round trip necessari per gestire le query tra elenchi, migliorando così le prestazioni di caratteristiche come la web part Query contenuto che presentano i risultati di query tra elenchi.

Controllo degli aggiornamenti

È possibile configurare la cache delle query tra elenchi per controllare gli eventuali aggiornamenti e per aggiornare la cache in base alle condizioni espresse nei due modi seguenti:

  • Controllando le modifiche apportate nella raccolta siti. Se non sono state apportate modifiche, vengono utilizzati i risultati memorizzati nella cache.

  • Attendendo per un determinato periodo di tempo, durante il quale verranno utilizzati i risultati memorizzati nella cache e al temine del quale verrà eseguita una query per aggiornare la cache.

La prima impostazione si rivela utile nei casi in cui il contenuto della raccolta siti visualizzato dalla query tra elenchi viene modificato frequentemente ed è importante che la query visualizzi le informazioni più recenti. Un esempio è rappresentato da un sito portale Intranet dei reparti in cui viene visualizzata una query tra elenchi dei documenti più recenti nel sito. Molti utenti di questo sito sono collaboratori e potrebbe essere importante visualizzare i documenti più recenti pubblicati dagli utenti.

La seconda impostazione si rivela utile nei casi in cui il contenuto della raccolta siti non viene modificato frequentemente ed è meno importante che la query tra elenchi visualizzi informazioni aggiornate. Un esempio è rappresentato da un sito Internet pubblico in cui viene visualizzata una query tra elenchi delle più recenti pagine di articoli pubblicate nel sito. Gli utenti di questo sito sono per la maggior parte utenti anonimi oppure utenti autenticati con autorizzazioni di sola lettura. In questo caso, un ritardo di alcuni minuti degli articoli più recenti non riveste importanza critica.

È possibile configurare la cache delle query tra elenchi eseguendo la procedura seguente.

Configurare la cache delle query tra elenchi

  1. Nella home page del sito scegliere Impostazioni sito dal menu Azioni sito e quindi fare clic su Modifica tutte le impostazioni di sito.

  2. Nella pagina Impostazioni sito fare clic su Cache oggetti raccolta siti nella sezione Amministrazione raccolta siti.

  3. Nella sezione Modifiche cache query tra elenchi selezionare il pulsante di opzione appropriato in base al modo in cui si desidera aggiornare la cache delle query tra elenchi. Se si seleziona l'opzione Utilizza i risultati memorizzati nella cache di una query tra elenchi per il numero di secondi seguente, digitare nella casella di testo un valore corrispondente al numero di secondi di attesa prima dell'aggiornamento della cache.

  4. Fare clic su OK per salvare le modifiche.

Numero di elementi da recuperare

L'impostazione Moltiplicatore risultati query tra elenchi controlla il numero degli elementi recuperati e memorizzati nella cache. Poiché le query tra elenchi possono recuperare elementi per una vasta gamma di utenti con autorizzazioni diverse, è importante recuperare dalla query una quantità di elementi sufficiente per visualizzare a tutti gli utenti gli elementi corretti. Per garantire che a tutti gli utenti vengano visualizzati gli elementi corretti nei risultati della query dopo l'opportuna limitazione per motivi di protezione, nella cache delle query tra elenchi devono essere recuperati più risultati rispetto a quelli originariamente richiesti. Per questa impostazione è necessario specificare un numero intero corrispondente al multiplo degli elementi da recuperare nella cache delle query tra elenchi.

  • L'impostazione del moltiplicatore su un valore superiore determina il recupero di un maggior numero di elementi e l'utilizzo di una maggiore quantità di memoria. Un valore superiore è appropriato in un sito Web in cui numerosi utenti dispongono di autorizzazioni esclusive per diversi elenchi ed elementi.

  • L'impostazione del moltiplicatore su un valore inferiore determina il recupero di un numero minore di elementi e l'utilizzo di una minore quantità di memoria. Un valore inferiore è appropriato in un sito Web in cui agli utenti è applicata la stessa protezione, come nel caso degli utenti anonimi di un sito Internet.

Configurare il moltiplicatore dei risultati delle query tra elenchi

  1. Nella home page del sito scegliere Impostazioni sito dal menu Azioni sito e quindi fare clic su Modifica tutte le impostazioni di sito.

  2. Nella pagina Impostazioni sito fare clic su Cache oggetti raccolta siti nella sezione Amministrazione raccolta siti.

  3. Nella casella Moltiplicatore query tra elenchi digitare un numero per specificare il multiplo degli elementi recuperato dalla query tra elenchi.

  4. Fare clic su OK per salvare le modifiche.

Cache basata su disco per BLOB

La cache basata su disco controlla la memorizzazione nella cache di oggetti binari di grandi dimensioni (BLOB), ad esempio file immagine, audio e video e frammenti di codice. La memorizzazione nella cache basata su disco riduce l'esigenza di round trip al database per accedere ai BLOB. I BLOB vengono recuperati dal database una sola volta e archiviati nei server Web. Ulteriori richieste vengono gestite dalla cache basata su disco e sottoposte all'opportuna limitazione per motivi di protezione.

Considerazioni

  • È possibile configurare le dimensioni della cache basata su disco per ogni applicazione Web. Il valore minimo è 1 GB ed è possibile incrementare le dimensioni per multipli di gigabyte. Verificare di disporre di spazio su disco sufficiente per l'applicazione.

  • Per la cache basata su disco è possibile definire diverse impostazioni. In particolare, tenere presenti le due impostazioni seguenti:

    • Max-age specifica, in secondi, il periodo di tempo massimo per il quale il browser client memorizza nella cache i BLOB scaricati nel computer client. Se gli elementi scaricati non sono scaduti dall'ultimo download, gli stessi elementi non vengono nuovamente richiesti fino alla scadenza della cache. Per impostazione predefinita, l'attributo max-age è impostato su 86400 secondi (ovvero 24 ore). Può tuttavia essere impostato su un periodo di tempo pari a zero o superiore. Con un valore superiore il browser impiega una maggiore quantità di tempo per ottenere gli elementi aggiornati.

    • Path specifica, sotto forma di espressione regolare, i file memorizzati nella cache, in base all'estensione file. Per impostazione predefinita sono incluse le estensioni file gif, jpg, png, css e js. Se le pagine Web fanno riferimento a tipi di file speciali, è necessario aggiungere le estensioni alla cache.

  • La memorizzazione nella cache basata su disco viene applicata soltanto agli elementi di una raccolta documenti. Se si archiviano risorse all'esterno di una raccolta documenti, ad esempio in una cartella inclusa in un sito, gli elementi non vengono gestiti dalla cache basata su disco anche se viene attivata per l'intera applicazione Web. Questo aspetto è importante se si desidera controllare l'impostazione dell'attributo max-age per le risorse BLOB scaricate nel browser client. Per impostazione predefinita, tale attributo per tutti gli elementi archiviati in Office SharePoint Server è impostato su zero.