深圳網(wǎng)站建設(shè)設(shè)計(jì)定做培訓(xùn)機(jī)構(gòu)招生7個(gè)方法
解決WSL2占用內(nèi)存過多問題(Docker on WSL2: VmmemWSL)
- 一、問題描述
- 二、問題解決
- 2.1 創(chuàng)建`.wslconfig`文件
- 2.2 重啟wsl2
一、問題描述
安裝完WSL2后,又安裝了Docker,使用了一段時(shí)間,發(fā)現(xiàn)電腦變卡,進(jìn)一步查看,發(fā)現(xiàn)CPU和內(nèi)存占用過大,如下圖:
docker僅僅運(yùn)行了mysql和zk,在關(guān)掉docker后,占用內(nèi)存仍然很大:
然后關(guān)掉wsl后,發(fā)現(xiàn)內(nèi)存下降了。
wsl --shutdown
但是,這種解決方案并不滿足我的訴求,我想要的結(jié)果是:docker+低內(nèi)存占用
二、問題解決
通過查詢資料,最終的解決方案如下:調(diào)整wsl的資源配置信息,將內(nèi)存占用限制在較小的范圍。
上述信息配置在.wslconfig
文件中(WSL1的配置文件為wsl.conf
,詳細(xì)信息可參考wsl配置文件)
2.1 創(chuàng)建.wslconfig
文件
路徑位置C:\Users\<UserName>\.wslconfig
,如果找不到也可以在Win+R
,然后輸入%userprofile%
回車即可
如果目錄下不存在,則創(chuàng)建.wslconfig
(多數(shù)情況下,是不存在的)
文件內(nèi)容如下:
# Settings apply across all Linux distros running on WSL 2
[wsl2]# Limits VM memory to use no more than 2 GB, this can be set as whole numbers using GB or MB
memory=2GB # Sets the VM to use two virtual processors
processors=6# Sets amount of swap storage space to 2GB, default is 25% of available RAM
swap=2GB# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
# swapfile=C:\\temp\\wsl-swap.vhdx
這里需要說明的是:下圖是微軟官方推薦的配置信息,但我僅僅用來裝mysql等數(shù)據(jù)庫之類的,所以改的比較小(比如我的內(nèi)存是32G,如果按照推薦的話,應(yīng)該是8G,但我只想給他2G)。
推薦配置
2.2 重啟wsl2
# 關(guān)閉wsl
wsl --shutdown
# 啟動(dòng)wsl
wsl
啟動(dòng)docker并開啟mysql等,再次查看資源占用,明顯下降: