services.exe verwendet zeitweise 10 bis 20 GB Arbeitsspeicher, wenn Visual Studio 2013 ausgeführt wird

1635
dauphic

Beim Ausführen von Visual Studio 2013 auf einem meiner Computer stelle ich fest, dass services.exe zwischen 10 und 20 GB Arbeitsspeicher benötigt. Dies geschieht zufällig und scheint keinen Bezug zu dem zu haben, was ich tue. Ich kann ein Projekt einfach öffnen und im Hintergrund belassen, und services.exe wird irgendwann anfangen, übermäßig viel Speicher zu verbrauchen.

Infolgedessen wird mein gesamtes System unbrauchbar (vermutlich aufgrund von Speicherüberlastungen), und ich muss Visual Studio beenden. Selbst nach dem Abbruch kann es bis zu 5 Minuten dauern, bis die Speichernutzung wieder gesunken ist. In extremen Fällen muss ich meinen Computer neu starten, da ich den Task-Manager oder den Prozess-Explorer nicht aufrufen kann.

Ich habe drei Maschinen, und nur eine Maschine hat dieses Problem. Bei dem fraglichen Rechner handelt es sich um einen Mac Pro mit 24 Prozessoren und 16 GB RAM, auf dem Windows 7 Ultimate N ausgeführt wird. Ich benutze Bootcamp, um Windows auszuführen. Die Maschine ist ziemlich sauber, da auf Bootcamp nur Visual Studio und Git für Windows installiert sind. Ein anderer Entwickler verwendet auch Bootcamp mit höheren Spezifikationen, und dieses Problem tritt nicht auf. Es scheint also kein generelles Bootcamp-Problem zu sein.

Was könnte das Problem sein? Gibt es eine Möglichkeit, dies zu diagnostizieren?

services.exe

enter image description here

2
Folgen Sie diesem: http://pastebin.com/4h2ySm1V und versuchen Sie, einige der Speicherauslastungen zu erfassen, und geben Sie mir die Datei. magicandre1981 vor 10 Jahren 0
Ich habe SuperFetch deaktiviert und scheint gestoppt zu sein. Ich gebe mir etwas Zeit, um zu überprüfen, ob es kein Zufall ist, da es zeitweilig ist. dauphic vor 10 Jahren 0
Superfetch wird von einer ** svchost.exe ** und nicht von services.exe gehostet. magicandre1981 vor 10 Jahren 0

1 Antwort auf die Frage

0
Horn OK Please

Beim ersten Anblick dachte ich, dass dies etwas mit dem Native Image Generation Service (ngen) zu tun haben könnte. Dies kann entweder direkt aufgerufen oder als Dienst ausgeführt werden. Der Name des Dienstes ist jedoch tatsächlich mscorsvw.exe(denke ich; es sei denn, es wurde in .NET 4.5 / VS 2013 geändert). Ich habe auch vergessen, dass services.exe eigentlich der Dienststeuerungs- Manager ist und sich nicht auf einen bestimmten Dienst bezieht, da keine Windows-Dienste tatsächlich in services.exe gehostet werden.

Das Problem ist, dass dies sehr spezifisch für Ihre Konfiguration sein wird. Es könnte sich um Hardware handeln. es könnte ein Fahrer sein; Möglicherweise handelt es sich dabei um einen Virus, der scheinbar legitim ist und versucht, sich selbst zu maskieren.

Überprüfen Sie Ihr Windows-Ereignisprotokoll unter Verwaltung. Wird es ungeheuerlich gespammt? Ich glaube, das Ereignisprotokoll schreibt services.exe ein.

Möglicherweise ist auch von Interesse, dass Hotplug-Gerätetreiber (für USB-Peripheriegeräte und heutzutage sogar Grafikkarten) über services.exe geladen werden. Von Wikipedia :

Services, deren Typregistrierungswert SERVICE_KERNEL_DRIVER oder SERVICE_FILE_SYSTEM_DRIVER lautet, werden speziell behandelt: Hierbei handelt es sich um Gerätetreiber, für die ScStartService () die ScLoadDeviceDriver () - Funktion aufruft, die den entsprechenden Treiber lädt (normalerweise eine Datei mit der Erweiterung .sys), die sich in% befindet. SystemRoot% \ System32 \ Drivers \ Verzeichnis. Zu diesem Zweck wird der NtLoadDriver-Systemaufruf aufgerufen, und das SeLoadDriverPrivilege wird dem SCM-Prozess hinzugefügt.

Der SCM, alias services.exe, hat also eine fragile und äußerst privilegierte Interaktion mit den Gerätetreibern des Systems. Ein Treiber könnte höchstwahrscheinlich eine Fehlfunktion haben und in regelmäßigen Abständen versuchen, sich selbst (möglicherweise aufgrund eines Absturzes) neu zu laden, und während der Initialisierungsroutine, die in services.exe ausgeführt wird, viel Arbeitsspeicher im SCM beansprucht.

Diese Antwort ist sehr spekulativ, da ich aufgrund der von Ihnen bereitgestellten Informationen keine genaue Antwort habe. Es tut uns leid.

Dinge zu versuchen:

  • Sehen Sie sich das Ereignisprotokoll wie ein Falke an. Sehen Sie, ob etwas zu der Zeit geschrieben wird, in der Sie die Verzögerung erfahren.
  • Stellen Sie fest, ob dies geschieht, ohne dass Visual Studio ausgeführt wird.
  • Aktualisieren Sie Ihre Treiber. Ich weiß, dass das albern klingt, aber es könnten tatsächlich Fahrer sein.
Es gibt keinen Spam im Ereignisprotokoll. Das war meine erste Vermutung. Es tritt auch auf, wenn ich die Ereignisprotokollierungsdienste deaktiviere. Ich kann auch bestätigen, dass dies nur bei laufendem VS2013 geschieht. Ich kann VS2010 oder 2012 über mehrere Wochen ausführen, ohne dass dieses Problem auftritt. Ich werde deine anderen Vorschläge ausprobieren. dauphic vor 10 Jahren 0