xz:压缩 1TB .tar 时出现 OOM

xz:压缩 1TB .tar 时出现 OOM

我正在尝试在启用多线程的情况下压缩大型存档,但是,我的系统不断冻结并耗尽内存。

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

我已经尝试使用/swapfile2 倍的 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

答案1

man xz

内存使用情况

特别是旧系统的用户可能会发现内存使用量非常大的可能性很烦人。为了防止出现令人不舒服的意外情况,xz 有一个内置的内存使用限制器,默认情况下处于禁用状态。

可以使用命令行选项启用内存使用限制器 --memlimit=limit。通常,通过设置环境变量来默认启用限制器会更方便 XZ_DEFAULTS

相关内容