SSIS 2008 runtime-processen kraschar när du kör SSIS 2008-paketet en minnesbrist villkor

Gäller för: SQL Server 2008 DeveloperSQL Server 2008 EnterpriseSQL Server 2008 Standard

Microsoft distribuerar Microsoft SQL Server 2008 korrigeringar som en nedladdningsbar fil. Eftersom korrigeringar är kumulativa innehåller varje ny utgåva innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i föregående SQL Server 2008.

Symptom


Du har en Microsoft SQL Server 2008 Integration Services (SSIS 2008)-paketet. Paketet innehåller ett dataflöde aktivitet. Ett åtkomstfel uppstår och sedan SSIS 2008 runtime-processen kraschar när du kör paketet på en server som är ett villkor för lite minne. Dessutom får du varningar om lite ledigt minne som liknar följande i programloggen SSIS 2008:
Namn: OnInformation

Beskrivning: Buffert manager misslyckades memory allocation uppmaning till 10484760 byte, men gick inte att byta ut alla buffertar för att avlasta minnestryck. 305 buffertar togs under övervägande och 295 var låst. Antingen inte tillräckligt med minne är tillgängligt på rörledningen eftersom det finns inte tillräckligt med installerad, andra processer använder det eller för många buffertar är låsta.



Namn: OnInformation


Beskrivning: Buffert manager har allokerat 10485608 byte, även om minnestryck upptäcktes och upprepade försök att byta buffertar har misslyckats.


Obs! De olika runtime processer som kör 2008 SSIS-paket är DTExec.exe, DTSHost.exe eller DTSDebugHost.exe. Process som körs 2008 SSIS-paket bestäms av de villkor som paketet finns under. DTExec.exe-process körs överordnade paket. DTSHost.exe-processen körs underordnade paketen. DtsDebugHost.exe-processen körs paket som felsöks med Business Intelligence Design Studio.

Orsak


SSIS 2008 meddelas att servern är ett villkor för lite minne. Ett tillstånd med minnesbrist inträffar när endast 128 megabyte (MB till 256 MB minne) finns. Sedan börjar SSIS 2008 körning att byta ut dataflöde pipeline buffertar till den temporära mapp som anges av egenskapen BufferTempStoragePath .


Den situation som nämns i avsnittet "Symptom", kopieras informationen i en buffert internt till en destinationsbufferten av en omvandling. Till exempel kopiera data i en buffert av en omvandling delta koppla. Den här åtgärden inträffar när servern inte är ett villkor för lite minne. Men känner inte omvandlingen en tråd utanför omvandlingen plötsligt växlas ut destinationsbufferten. Därför misslyckas kopieringen och orsakar åtkomstfelet.

Lösning


Den här snabbkorrigeringen låser destinationsbufferten uttryckligen under en kopieringen. Detta förhindrar att andra trådar byta ut destinationsbufferten när kopieringen körs.
Korrigeringsfil för problemet gavs först ut i kumulativ uppdatering 6 för SQL Server 2008 Service Pack 1. Mer information om den kumulativa uppdateringspaket klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
977443 kumulativ uppdateringspaket 6 för SQL Server 2008 Service Pack 1
Obs! Eftersom på byggen är kumulativa, varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i föregående SQL Server 2008. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. För mer information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
970365 i SQL Server 2008 bygger som har getts ut efter SQL Server 2008 Service Pack 1
Snabbkorrigeringar för Microsoft SQL Server 2008 skapas för särskilda SQL Server servicepack. Du måste installera en snabbkorrigering för SQL Server 2008 Service Pack 1 till en installation av SQL Server 2008 Service Pack 1. En snabbkorrigering som finns i en SQL Server service pack ingår som standard i nästa service pack för SQL Server.

Temporär lösning


Undvik det här problemet genom att lösa villkor för lite minne. Mängden minne som kan utlösa detta problem varierar för olika datorer. Det här beloppet är i allmänhet mellan 32 MB och 64 MB. Därför rekommenderar vi att du konfigurerar servern att allokera mer än 64 MB minne till SSIS 2008.

Standard för mängden tillgängligt minne som signalerar en meddelandehändelse minnesbrist resurs fluktuerar. Detta minne sträcker sig från 32 MB och 64 MB för varje 4 gigabyte (GB). Det här problemet är svårt att förhindra eftersom minne fluktuerar på upptagen produktionsservrar. Minnet kan dessutom minska av olika anledningar. Mer information om meddelanden om minne finns på följande Microsoft Developer Network (MSDN)-webbplats:Använd någon av följande metoder för att minska frekvensen av det här problemet.

Metod 1

Lägg till mer fysiskt minne i datorn.

Metod 2

Att köra SSIS 2008-paketet på en dator som inte kör en instans av SQL Server.

Metod 3

När du kör SSIS 2008-paketet anger du alternativet maximalt serverminne för instansen av SQL Server 2008 till ett mindre värde. Detta ökar tillgängligt minne.

Metod 4

Avsluta program som förbrukar mycket minne när du kör SSIS 2008-paketet som innehåller uppgifter om dataflöde.


Metod 5

Köra SSIS 2008-paketet och dataflöde aktiviteter i serie i stället för att minska minnesanvändningen parallellt.


Metod 6

Använd den metod som beskrivs i avsnittet "Hur du övervakar minnesanvändningen för SSIS" under avsnittet "Mer information" Felsökning av villkor för lite minne. Sedan optimera minnesanvändningen för SSIS 2008.

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information


Hur du övervakar minnesanvändningen för SSIS

Övervaka minnet att mäta Toppvärde användning för olika SQL Server Integration Services körning processer att beräkna maximalt minne


Övervaka topp minnesanvändning för olika SQL Server Integration Services (SSIS) körning processer med hjälp av den
Privata byte
räknare för den
Processen
objekt i Prestandaövervakaren. Exempel på SSIS körning processer är DTExec.exe-processen och processen för DTSHost.exe.


När du använder SSIS-paket, hitta det största värdet för den
Privata byte
räknaren. När flera paket körs parallellt, lägga till högsta värdena för alla processer som körs för att få det maximala värdet för minnesanvändning.

Övervaka externa processer att hitta toppar och dalar


Övervaka användningen av processer utanför SQL Server-tjänsten och tjänsten SSIS topp minne med hjälp av den
Privata byte
räknare för den
Processen
objekt i Prestandaövervakaren. Leta efter Högbelastningstider för användning som kan minska tillgängligt minne för SSIS. Högbelastningstider är till exempel när flera användare använder protokollet RDP (Remote Desktop) för att ansluta till servern eller när du kör programvara för säkerhetskopiering.

Övervaka minnesanvändningen för SQL Server för att hitta toppar och dalar


Om meddelandet "Använda låsta sidor för buffertpool" inte senaste loggfilen på
Privata byte
räknare för Sqlservr.exe process kan ange hur mycket minne som förbrukas av SQL Server-tjänster.



Om meddelandet "Använda låsta sidor för buffertpool" ingår i de senaste loggfilen, använda den
Totalt minne (KB)
räknare för den
SQLServer: Minneshanterare
Prestandaobjekt för mätning av minnesanvändningen för buffertpool SQL Server. Dessutom använder de
Privata byte
räknare för Sqlservr.exe process att hitta minnestilldelningar utanför buffertpool (MemToLeave). Summan av det Totala Server minne (KB) räknare och MemToLeave-värdet är en bra uppskattning av den totala mängden minne som används av SQL Server.



Resursövervakaren och Aktivitetshanteraren visar inte det minne som förbrukas av sidorna buffert poolen när någon av följande förutsättningar föreligger:
  • Den
    Låsa sidor i minnet användarrättigheten har tilldelats kontot SQL Server startas.
  • Den
    AWE
    minnet är aktiverat.
Obs!
Om något av dessa villkor föreligger det
Privata byte
räknare för Sqlservr.exe process ska ange hur mycket minne som förbrukas av SQL Server-tjänster för olika SQL Server-instanser.

Övervaka det lägsta värdet på tillgängligt minne i Windows


Använd någon av följande metoder om du vill övervaka hur mycket minne som är tillgängligt i Windows:
  • Använd den
    Tillgängliga megabyte
    räknare i Resursövervakaren för att ange hur mycket minne som är tillgänglig.
  • Visa den
    Fysiskt minne (MB) ledigt
    värde på fliken prestanda i Aktivitetshanteraren.


    Obs!
    I vissa operativsystem, Fysiskt minne (MB) – ledig
    värdet är märkt som Fysiskt minne (kB) – tillgängliga värde.

Referenser


Information om stegvis Servicing modellen för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

935897 en inkrementell Servicing modell är tillgänglig från SQL Server-teamet att leverera snabbkorrigeringar för rapporterade problem



Mer information om namngivning schemat för uppdateringar för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

822499 Nytt system för namngivning för Microsoft SQL Server-programuppdateringspaket


För mer information om terminologin för programuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
824684 beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringar