Linux-Kernel

xz:壓縮 1TB .tar 時出現 OOM

  • July 23, 2021

我正在嘗試壓縮啟用多執行緒的大型存檔,但是,我的系統不斷凍結並耗盡記憶體。

OS: Manjaro 21.1.0 Pahvo    
Kernel: x86_64 Linux 5.13.1-3-MANJARO
Shell: bash 5.1.9
RAM: 16GB
|swapon|
NAME      TYPE   SIZE   USED   PRIO
/swapfile file   32G    0B     -2

我已經嘗試過使用/swapfile兩倍於我擁有的 RAM 量(32GB)的方法,但是一旦使用了超過 90% 的總 RAM,系統總是會凍結,並且似乎沒有使用 /swapfile。

|xz --info-memory|
Total amount of physical memory (RAM) : 15910 MiB
Memory usage limit for compression: Disabled
Memory usage limit for decompression: Disabled

我是新手,xz所以請多多包涵,但是有沒有辦法全域啟用記憶體使用限制器並讓物理記憶體(RAM)總量考慮到可用空間/swapfile

來自man xz

記憶體使用情況

特別是舊系統的使用者可能會發現非常大記憶體使用的可能性令人討厭。為了防止令人不快的意外,xz 有一個內置的記憶體使用限制器,預設情況下它是禁用的。

可以使用命令行選項啟用記憶體使用限制器 --memlimit=limit。通常通過設置環境變數來預設啟用限制器會更方便 XZ_DEFAULTS

引用自:https://unix.stackexchange.com/questions/659691