测试了多次,均没有什么明显的速度变化
不知是否是心理作用,感觉符合硬件核心数量的效果(直觉上)平均来说最好
但只有一个也没差多少(不知是否是硬件太烂无法充分体现多核效果)
测试环境是E5500(双核双线程的CPU),G41主板
测试方法是用mdadm把多个zram组RAID0来模拟多个swap被均衡使用的情况
代码: 全选
$sudo ./zram 16
16zram
/dev/md0:
Timing buffered disk reads: 1676 MB in 3.00 seconds = 558.06 MB/sec
$sudo ./zram 8
8zram
/dev/md0:
Timing buffered disk reads: 1668 MB in 3.00 seconds = 555.79 MB/sec
$sudo ./zram 4
4zram
/dev/md0:
Timing buffered disk reads: 1666 MB in 3.00 seconds = 554.80 MB/sec
$sudo ./zram 2
2zram
/dev/md0:
Timing buffered disk reads: 1676 MB in 3.00 seconds = 558.41 MB/sec
$sudo ./zram 1
1zram
/dev/md0:
Timing buffered disk reads: 1670 MB in 3.00 seconds = 556.34 MB/sec
$
代码: 全选
#!/bin/sh
FRACTION=200
MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
CPUS="$1"
str=''
SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))
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
str=${str}" /dev/zram$i "
done
mdadm --zero-superblock ${str} 1>/dev/null 2>/dev/null
mdadm --create --force /dev/md0 --level=0 --raid-devices=${CPUS} ${str} 1>/dev/null 2>/dev/null
echo ${CPUS}'zram'
sudo hdparm -t /dev/md0
sudo mdadm --stop /dev/md0 1>/dev/null 2>/dev/null
for n in `seq $CPUS`; do
i=$((n - 1))
done
wait
sleep .5
modprobe -r zram
代码: 全选
$sudo hdparm -t /dev/zram0
/dev/zram0:
Timing buffered disk reads: 1988 MB in 2.82 seconds = 705.28 MB/sec
Tue Sep 12 15:15:29 CST 2017补充:
貌似是因为zram是空的,所以根本没有实际解压操作?