SQL Server montaj optimizasyon hatalarını ve bellek tükenmesini nasıl düzeltirim?


9

mscorsvwSQL Server 2012 Service Pack 1'i yüklediğimden beri .NET Çalışma Zamanı Optimizasyonu Hizmeti ( ) tüm iş istasyonumun belleğini tüketmeye devam ediyor.

Kullanılabilir tüm belleği tüketmeden önce yaklaşık 1,6 GB bellek tüketir:

.NET Çalışma Zamanı Optimizasyonu Hizmeti iş istasyonumdaki tüm kullanılabilir belleği tüketir.

İşlemi öldürebilirim, ancak bilgisayarımı yeniden başlattığımda veya yeterince beklediğimde tekrar oluyor.

Techdowsngen , sorunu çözmek için .NET Yerel Görüntü Oluşturucu'yu ( ) kullanmanızı önerir .

Ben bir Komut İstemi oipened ve böyle komutları koştu:

cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
ngen executeQueuedItems

Bellek tüketimi mscorsvwyaklaşık 20-30 MB'a düştü ngenve kalan tüm belleği tüketti.

ngenBen süreci öldürene kadar sadece hata mesajları üretti. Çıktının ilk birkaç satırı şöyle görünüyordu:

Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Failed to load dependency Microsoft.DataWarehouse of assembly
Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.VisualStudio.DataTools.Interop of assembly 
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.Data.ConnectionUI of assembly
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The located
assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)

Tüm mesajlar, sistemin bir montaj bulamadığını veya bir manifest tanımının bir referansla eşleşmediğini söyler.

Geçici bir çözüm olarak, Windows Hizmetlerini clr_optimization_v4.0.30319_32ve clr_optimization_v4.0.30319_64.

Bu, sorunu çözmek yerine gizler ve tüm .NET derlemelerinin en iyi duruma getirilmesini durdurur.

Bu sorunu çözmek için başka ne deneyebilirim?


.Net çalışma zamanını yeniden yüklemeyi denediniz mi?
Max Vernon

@MaxVernon Henüz değil. Bu biraz zaman alabilir. Eğer gelecek başka bir çözüm yoksa bunu gelecek hafta deneyeceğim.
Iain Samuel McLean Elder

Görünüşe göre, başka bir cevap almak sürece. Yeniden yüklemeyi denediniz mi?
Max Vernon

Yanıtlar:


9

Bu sorun Connect'te açıklanır (SQL Server 2012 SP1 yüklendikten sonra msiexec.exe işlemleri çalışmaya devam eder ) ve KB2793634'te bir düzeltme kullanılabilir . Düzeltmeyi hemen yükleyemiyorsanız, Connect ve bu blog üzerinde geçici çözümler hakkında yorum var .

2 betik kurmayı seçtim. 1. komut dosyası her gün sabah 1'de çalışır ve 1 saatlik yürütme sonrasında sona erecek şekilde ayarlanır

c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executequeueditems
c:\windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executequeueditems
c:\windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe executequeueditems 
c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executequeueditems

2. komut dosyası her gün saat 3'te (ve bilgisayar yeniden başlatıldığında) çalışır:

c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe queue pause
c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe queue pause

Bu şekilde hala derleme optimizasyon işleri almak (sadece yoğun olmayan saatlerde çalıştırın), ancak mscorsvw/ msiexecişlem evcilleştirilir.


Senaryonuzu test etmedim. İş istasyonumda düzeltmeyi hemen yükleyebildim ve sorunumu çözdü! Referans için teşekkürler.
Iain Samuel McLean Elder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.