Wie können die Auswirkungen einer WSL2-Sitzung auf die Leistung des Windows-Hosts reduziert werden?

Wie können die Auswirkungen einer WSL2-Sitzung auf die Leistung des Windows-Hosts reduziert werden?

Ich habe einige rechenintensive Prozesse (Kompilieren und Verknüpfen großer Programme) in WSL2 unter Windows 10 Pro (Build 19041.746) ausgeführt, und dadurch wurden grafische Windows-Programme merklich verlangsamt, sodass es manchmal so schien, als würden sie für eine Minute oder länger vollständig angehalten.

Ich habe die Option -j des Make-Jobs, der diese Prozesse ausführt, auf 1 gesetzt, um die Parallelität zu minimieren, und verwende außerdem „nice“, um die Priorität dieser Prozesse innerhalb von Linux zu verringern. Dadurch kann ich zwar andere Linux-Programme gleichzeitig in WSL2 ausführen, aber die Auswirkungen auf Windows-Programme scheinen dadurch nicht gemildert zu werden (was wohl zu erwarten war, da der Linux-Scheduler vermutlich nicht „weiß“, was auf seinem Windows-Host passiert).

Ich ging in den Windows Task-Manager und fand zwei Instanzen von wsl.exe und drei Instanzen von wslhost.exe laufen (entspricht einem Terminal mit zwei geöffneten Tabs). Ich setzte alle ihre Prioritäten auf „niedrig“ und startete den Linux-Job in einem dieser Terminal-Tabs neu, aber das verbesserte die Situation bestenfalls nur geringfügig. Da die Linux-Programme durch das, was ich bisher getan habe, nicht viel verlangsamt zu sein scheinen, scheint es möglich zu sein, die Windows-Leistung wiederherzustellen, während die Linux-Programme weiter Fortschritte machen (es ist mir egal, ob sie langsamer sind, im Rahmen des Zumutbaren), aber kann ich irgendetwas tun, um das zu erreichen?

verwandte Informationen