加大虛擬記憶體分配限制改善到行Game或大型程式嘅穩定度
本帖最後由 Okt04175 於 2024-4-9 15:09 編輯
如果行Game或者模擬器又或者其他大型軟體唔夠穩定嘅話,目前Linux界都係建議將vm.max_map_count嘅設定值加大到1048576(等如1GB),而65530(等如64MB)係上世紀預設值喺今日嚟講其實都唔夠使。
Manjaro更新公告有解釋:
「此變更應有助於解決許多記憶體密集型應用程式的效能、當機或啟動問題,特別是(但不限於)透過 Wine/Steam Proton 玩的一些 Windows 遊戲。整體而言,最終使用者應該會擁有更流暢的開箱即用體驗,而無需擔心arch-dev-public 郵件清單相關提案中的潛在缺點。」
https://forum.manjaro.org/t/unst ... 24-edition/159210/3
Arch Linux會加大預設值:
https://www.phoronix.com/news/Arch-Linux-vm.max_map_count
另外M$係建議將設定值加大到1600000(約1.5GB),咁就行SQL Server都夠做。
https://learn.microsoft.com/zh-t ... or-high-performance
Linux核心說明網站都有詳細講解:
「最大記憶體對應量:
該檔案包含處理程序可能擁有的記憶體對應區域的最大數量。記憶體對應區域用作呼叫 malloc 的副作用,直接由 mmap、mprotect 和 madvise 以及在載入共用庫時使用。
雖然大多數應用程式需要少於一千個對應,但某些程式(特別是 malloc 偵錯器)可能會消耗大量對應,例如每次分配最多一到兩個對應。」
(通俗講即係用嚟限制每個程式最盡可獲分配嘅虛擬記憶體空間量。)
喺終端機程式用1句指令就可以調整vm.max_map_count嘅設定值:
sudo sysctl -w vm.max_map_count=1048576
當然sudo指令係要入自己有管理員權限帳號嘅密碼做驗證。 |
|
|