網頁

執行docker run出現the paging file is too small錯誤

執行docker run出現the paging file is too small錯誤

公司新開發機筆電明顯卡頓,而且時常出現螢幕閃黑數十秒後還原。原先不太在意,但頻率明顯增加的趨勢。一段時間過後發現,此現象在啟動 Docker for Windows 之後非常明顯。在啟動 Windows Container 失敗的錯誤訊息:The paging file is too small 引發我的好奇。

首先,這台開發機有 24 GB RAM,啟動 Docker for Windows 後整體使用率約 7 成(Windows Container 因為有機會開 SQL Server 容器,所以習慣設定 4096 MB),也就是使用約 16 - 17 GB 左右,剩下也還有接近 7 GB 的記憶體空間。我知道 Paging 是指分頁檔,但通常分頁檔應該是實體憶體體不足才會產生與使用。怎麼會說不夠呢?

還好在好朋友**事件檢視器(EventLog)**幫助之下很快找到問題點:

Windows 已成功診斷虛擬記憶體不足的狀況。以下程式使用的記憶體最多: OUTLOOK.EXE (18940) 使用 1080897536 個位元組,vmmem (9080) 使用 1076043776 個位元組,vmmem (1000) 使用 1075912704 個位元組。

1080897536 Bytes (B) = 1,030 Megabytes (MB) 差不多 1 GB,outlook 用了 1GB,vmmem.exe 是 virtual process,主要呈現虛擬(主機)容器的 CPU 和 Memory 的使用率。都已經是 64 位元電腦,應該不存在 32 位元的 3.2 GB 限制才對呀!神奇的事,如果當下我把 outlook 給關閉,原本無法建立的 docker run 容器立即建立與啟動。

找到虛擬記憶體的設定(系統→進階系統設定→進階→效能→進階),當場傻眼:

Virtual Memory Setting

為什麼我的開發機被設定為「沒有分頁檔」!無從得知,修改為「自動管理所有磁碟的分頁檔大小」,重開機,目前 outlook 與 vmmem 的分頁檔太小的錯誤就暫時沒有再出現了。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。