![在低 RAM 虚拟机上压缩内存](https://linux22.com/image/37766/%E5%9C%A8%E4%BD%8E%20RAM%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8A%E5%8E%8B%E7%BC%A9%E5%86%85%E5%AD%98.png)
答案1
正如上所解释的兹拉姆维基:
zram(以前称为 compcache)可以创建基于 RAM 的块设备。它是 Linux 内核自 3.2 以来的一个实验性(暂存)模块。
因此,如果您使用 3.2 之前的内核,则需要复制以下脚本(取自这里) 到/etc/init.d/zram
:
### BEGIN INIT INFO
# Provides: zram
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: Use compressed RAM as in-memory swap
# Description: Use compressed RAM as in-memory swap
### END INIT INFO
# Author: Antonio Galea <[email protected]>
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization
FRACTION=75
MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
CPUS=`grep -c processor /proc/cpuinfo`
SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))
case "$1" in
"start")
param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '`
modprobe zram $param=$CPUS
for n in `seq $CPUS`; do
i=$((n - 1))
echo $SIZE > /sys/block/zram$i/disksize
mkswap /dev/zram$i
swapon /dev/zram$i -p 10
done
;;
"stop")
for n in `seq $CPUS`; do
i=$((n - 1))
swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" &
done
wait
sleep .5
modprobe -r zram
;;
*)
echo "Usage: `basename $0` (start | stop)"
exit 1
;;
esac
赋予它可执行权限
chmod +x /etc/init.d/zram
然后指示您的系统在引导时启动它,使用命令
insserv zram
下次重新启动后,您将看到交换
swapon -s
看起来像:
Filename Type Size Used Priority
/dev/zram0 partition 381668 380716 10