Degrado delle prestazioni nella funzione UnmapViewOfFile

Traduzione articoli Traduzione articoli
Identificativo articolo: 815227 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

In un programma che utilizza visualizzazioni di file mappati di dimensioni superiori ai 500 megabyte (MB) Ŕ possibile che si verifichi una significativa riduzione delle prestazioni. Le visualizzazioni di file mappati vengono utilizzate di frequente per condividere informazioni tra due o pi¨ processi. Questo degrado a livello di prestazioni si manifesta nella funzione UnmapViewOfFile.

Cause

Questo problema si verifica se un programma esegue il mapping di visualizzazioni di file di dimensioni superiori ai 500 MB in Microsoft Windows Server 2003 o in Microsoft Windows XP Service Pack 1 (SP1).

Risoluzione

Windows XP Service Pack 1

Informazioni sul Service Pack

Per risolvere il problema, procurarsi l'ultimo service pack per Windows XP. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
322389 Come ottenere il Service Pack pi¨ recente per Windows XP

Informazioni sull'hotfix

╚ disponibile un hotfix supportato da Microsoft, che Ŕ tuttavia destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Utilizzarlo solo nei sistemi in cui si verifica questo problema specifico. ╚ possibile che su questo hotfix vengano eseguiti ulteriori test. Se pertanto questo problema non causa gravi difficoltÓ, si consiglia di attendere la versione successiva del service pack di Windows XP contenente l'hotfix.

Per risolvere immediatamente il problema, contattare il Servizio Supporto Tecnico Clienti Microsoft per ottenere l'hotfix. Per un elenco completo di numeri di telefono del Servizio Supporto Tecnico Clienti Microsoft e per informazioni sui costi dell'assistenza, visitare il sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota In casi particolari, le spese normalmente addebitate per le chiamate al Servizio Supporto Tecnico Clienti Microsoft potrebbero essere annullate qualora un addetto del Servizio Supporto Tecnico Clienti Microsoft dovesse determinare che uno specifico aggiornamento risolverÓ il problema. I normali costi del Servizio Supporto Tecnico Clienti Microsoft verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione. La versione in lingua inglese di questo hotfix presenta gli attributi di file elencati nella tabella seguente (o attributi successivi). Date e ore elencate di seguito sono espresse in UTC (Universal Time Coordinate). Quando si visualizzano le informazioni sui file, l'ora viene convertita in ora locale. Per calcolare la differenza tra l'ora UTC e quella locale, utilizzare la scheda Fuso orario dello strumento Data e ora del Pannello di controllo.
   Data        Ora      Versione        Dimensioni  Nome file     Piattaforma
   -------------------------------------------------------------------------- 
   28/02/2003  16.17    5.1.2600.1178    1.895.424  Ntkrnlmp.exe  i386
   28/02/2003  16.17    5.1.2600.1178    1.951.232  Ntkrnlpa.exe  i386
   28/02/2003  16.17    5.1.2600.1178    1.923.584  Ntkrpamp.exe  i386
   28/02/2003  16.17    5.1.2600.1178    1.927.424  Ntoskrnl.exe  i386
   28/02/2003  16.17    5.1.2600.1178    5.826.432  Ntkrnlmp.exe  ia-64 
   28/02/2003  16.17    5.1.2600.1178    5.736.704  Ntoskrnl.exe  ia-64

Windows Server 2003

Sebbene il problema si manifesti con una chiamata della funzione UnmapViewOfFile, la modifica al codice necessaria Ŕ interna al kernel. Dal momento che sussiste il rischio di modificare funzioni fondamentali di gestione della memoria, non Ŕ disponibile un hotfix per Windows Server 2003. La correzione relativa al codice per Windows Server 2003 sarÓ disponibile in Windows Server 2003 Service Pack 1.

I programmi che potrebbero essere interessati da questo problema possono essere individuati utilizzando Performance Monitor. A questo scopo, attenersi alla seguente procedura:
  1. Creare un file di registro di Performance Monitor attenendosi alla procedura descritta nell'articolo 248345 della Microsoft Knowledge Base o utilizzando la procedura guidata di Performance Monitor.
    Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    248345 Creazione di un file registro utilizzando Monitor di sistema in Windows 2000
  2. Registrare le attivitÓ del server nei periodi di intensa attivitÓ.
  3. Interrompere la registrazione di Performance Monitor e verificare Picco dimensioni working set nell'oggetto prestazione Thread. Individuare qualsiasi processo in cui le dimensioni del working set hanno superato i 500 MB.
  4. Sottrarre il valore delle dimensioni del working set di ogni processo individuato al passaggio 3 dalla voce corrispondente Byte privati nell'oggetto prestazione Thread.
Se il working set impostato per un processo Ŕ di 500 MB superiore ai byte privati, il programma potrebbe utilizzare visualizzazioni di file mappati di maggiori dimensioni e potrebbe risentire del degrado delle prestazioni dalla chiamata della funzione UnmapViewOfFile. Se questi programmi si bloccano in modo casuale o per lunghi periodi di tempo, potrebbe essere necessario eseguire una verifica del codice o un'analisi di debug per verificare se i programmi hanno questo problema.

Se il programma Ŕ affetto da questo problema di prestazioni, sono disponibili le seguenti soluzioni relative al codice per Windows Server 2003 fin quando non sarÓ disponibile Windows Server 2003 Service Pack 1:
  1. Rimuovere le chiamate alla funzione UnmapViewOfFile nei programmi in esecuzione in Windows Server 2003. Questa chiamata Ŕ necessaria solo se il processo deve eseguire il mapping di pi¨ sezioni di memoria allo stesso indirizzo di memoria. Il sistema operativo pulirÓ le sezioni condivise non appena viene chiuso l'ultimo thread.
  2. Qualora fosse necessario chiamare la funzione UnmapViewViewOfFile, scrivere un nuovo programma per creare un oggetto processo (CreateJobObject). Utilizzare la funzione SetInformationJobObject per impostare le dimensioni massime del working set su 500 MB impostando la proprietÓ MaximumWorkingSetSize del parametro _JOBOBJECT_BASIC_LIMIT_INFORMATION. Questa impostazione Ŕ 24 MB con l'opzione /3GB. Associare tutti i processi necessari all'oggetto processo.
Questo programma dovrebbe essere eseguito una volta che i processi necessari risultano giÓ avviati. Se uno di questi processi viene riavviato, il programma dovrÓ essere eseguito nuovamente. ╚ possibile che non si verifichi un grave degrado delle prestazioni se si limitano le dimensioni del working set del processo. Se vi Ŕ molta RAM disponibile nel sistema, le pagine rimosse dal working set del processo verranno inserire nell'elenco Standby. Se si verifica un errore nella pagina, verrÓ probabilmente eseguita dalla pagina nell'elenco Standby della memoria fisica. ╚ necessario eseguire benchmark delle prestazioni per determinare l'effetto delle prestazioni reale per questa soluzione.

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Le informazioni in questo articolo si applicano a" del presente articolo. Questo problema Ŕ stato corretto per la prima volta in Windows XP Service Pack 2. ╚ previsto che l'hotfix sia incluso in Windows Server 2003 Service Pack 1.

ProprietÓ

Identificativo articolo: 815227 - Ultima modifica: venerdý 26 gennaio 2007 - Revisione: 5.7
Le informazioni in questo articolo si applicano a
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
Chiavi:á
kbtshoot kbbug kbfix kbqfe kbenv kbwinxpsp2fix kbwinxppresp2fix kbhotfixserver KB815227
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com