Bagaimana cara memperbaiki kesalahan optimisasi perakitan SQL Server dan kehabisan memori?


9

.NET Runtime Optimization Service ( mscorsvw) terus menggunakan semua memori workstation saya sejak saya menginstal SQL Server 2012 Paket Layanan 1.

Ini mengkonsumsi sekitar 1,6 GB memori sebelum menghabiskan semua memori yang tersedia:

Layanan .NET Runtime Optimization mengkonsumsi semua memori yang tersedia di workstation saya

Saya bisa mematikan prosesnya, tetapi itu terjadi lagi ketika saya me-restart komputer saya atau menunggu cukup lama.

Techdows menyarankan penggunaan .NET Native Image Generator ( ngen) untuk menyelesaikan masalah.

Saya membuka Command Prompt dan menjalankan perintah seperti ini:

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

Konsumsi memori mscorsvwturun menjadi sekitar 20-30 MB, dan ngenmenghabiskan semua memori yang tersisa.

ngenhanya menghasilkan pesan kesalahan sampai saya menghentikan proses. Beberapa baris pertama output tampak seperti ini:

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)

Semua pesan mengatakan bahwa sistem tidak dapat menemukan rakitan, atau bahwa definisi manifes tidak cocok dengan referensi.

Sebagai solusinya, saya telah menonaktifkan Layanan Windows clr_optimization_v4.0.30319_32dan clr_optimization_v4.0.30319_64.

Ini menyembunyikan masalah daripada menyelesaikannya, dan menghentikan semua .NET majelis agar tidak dioptimalkan.

Apa lagi yang bisa saya coba untuk menyelesaikan masalah ini?


Sudahkah Anda mencoba menginstal ulang .Net runtime?
— Max Vernon

@ MaxVernon Belum. Itu bisa memakan waktu cukup lama. Saya akan mencobanya minggu depan jika tidak ada solusi lain yang muncul.
— Iain Samuel McLean Elder

Ternyata, tidak selama mendapat jawaban lain. Apakah Anda mencoba menginstal ulang?
— Max Vernon

Jawaban:


9

Masalah ini dijelaskan pada Connect (lihat proses msiexec.exe tetap berjalan setelah instalasi SQL Server 2012 SP1 ) dan perbaikan terbaru tersedia di KB2793634 . Ada komentar tentang penyelesaian di Connect dan blog ini jika Anda tidak dapat segera menginstal perbaikan terbaru.

Saya memilih untuk menyiapkan 2 skrip. Skrip 1 beroperasi setiap hari pada jam 1 pagi, dan ditetapkan untuk berakhir setelah 1 jam eksekusi

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

Skrip ke-2 berjalan setiap hari pada jam 3 pagi (dan kapan pun komputer dinyalakan kembali):

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

Dengan cara ini saya masih mendapatkan kompilasi pekerjaan optimasi (hanya berjalan selama jam sibuk), tetapi proses mscorsvw/ msiexecdijinakkan.


Saya belum menguji skrip Anda. Di workstation saya, saya dapat menginstal perbaikan terbaru segera, dan itu telah memecahkan masalah saya! Terima kasih untuk referensi.
— Iain Samuel McLean Penatua
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.