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.