Use ltp to test zram

测试环境:

  1. #uname -r 3.10.0-327.ali2010.rc6.alios7.x86_64
  2. 没有指定zram algorithm(没有设置), 因为kernel v3.15开始才支持选择compression algorithms:cat /sys/block/zram0/comp_algorithm。比如:select lzo compression algorithm:echo lzo > /sys/block/zram0/comp_algorithm

测试原理:

  1. 创建4个zram虚拟磁盘 zram0 zram1 zram2 zram3
  2. 分别创建4个文件系统,分别大小如下
    • /dev/zram0: ext4 100M
    • /dev/zram1: ext4 100M
    • /dev/zram2: ext4 100M
    • /dev/zram3: ext4 100M
  3. 分别挂载/dev/zram0 /dev/zram1 /dev/zram2 /dev/zram3 到四个目录
  4. 通过dd工具写四个目录
  5. 利用free命令获得dd塞满四个目录前后,zram一共使用多少内存used_mem=$(($mem_free0 - $mem_free1))
  6. total_size=400M
  7. 压缩比 = $total_size / $used_mem

测试结果:

前提条件: 关闭所有测试期间可能使用,释放内存的干扰因素

测试结果压缩比:1.41:1

#sh      zram01.sh
TINFO create '4' zram device(s)
TPASS test succeeded
./zram_lib.sh: line 60: tst_tmpdir: command not found
TINFO set disk size to zram device(s)
TINFO /sys/block/zram0/disksize = '50M' (1/4)
TINFO /sys/block/zram1/disksize = '50M' (2/4)
TINFO /sys/block/zram2/disksize = '50M' (3/4)
TINFO /sys/block/zram3/disksize = '50M' (4/4)
TPASS test succeeded
./zram_lib.sh: line 202: tst_check_cmds: command not found
TINFO make ext4 filesystem on /dev/zram0
TINFO make ext4 filesystem on /dev/zram1
TINFO make ext4 filesystem on /dev/zram2
TINFO make ext4 filesystem on /dev/zram3
TPASS zram_makefs succeeded
TINFO mount /dev/zram0
mkdir: cannot create directory ‘zram0’: File exists
TINFO mount /dev/zram1
mkdir: cannot create directory ‘zram1’: File exists
TINFO mount /dev/zram2
mkdir: cannot create directory ‘zram2’: File exists
TINFO mount /dev/zram3
mkdir: cannot create directory ‘zram3’: File exists
TPASS mount of zram device(s) succeeded
TINFO fill zram0...
TINFO zram0 can be filled with '44416' KB
TINFO fill zram1...
TINFO zram1 can be filled with '44416' KB
TINFO fill zram2...
TINFO zram2 can be filled with '44404' KB
TINFO fill zram3...
TINFO zram3 can be filled with '44416' KB
TINFO zram used 126M, zram disk sizes 180M
TPASS compression ratio: 1.42:1
TINFO zram cleanup

同样方式,改变一些条件后的测试结果

kernel version zram数量 文件系统 zram大小 测试结果:压缩比
物理机 3.10 4 ext4 ext4 ext4 ext4 50M 50M 50M 50M 1.12:1-1.40:1
物理机 3.10 4 ext4 ext4 ext4 ext4 100M 100M 100M 100M 1.10:1
Aliyun VM 4.12 4 ext4 ext4 ext4 ext4 50M 50M 50M 50M 1.00:1
Aliyun VM 4.12 4 ext4 ext4 ext4 ext4 100M 100M 100M 100M 1.07:1

结论:

通过这种方式测试zram的压缩效果并不是很明显。在kernel 3.10 和kernel 4.12差距也并不多。

测试环境:aliyun ECS VM + rhel7.3 + kernel 4.12

kernel version zram数量 文件系统 zram大小 测试结果:压缩比
aliyun ECS VM + el7.3 +kernel 4.12 4 ext4 ext4 ext4 ext4 100M 100M 100M 100M 1.07:1
[root@izrj9hbvvadz319i4e695tz zram]# uname -r
4.12.7-1.el7.elrepo.x86_64
[root@izrj9hbvvadz319i4e695tz ~]# cat /sys/block/zram0/comp_algorithm
[lzo] lz4 deflate lz4hc 842
[root@izrj9hbvvadz319i4e695tz zram]# sh      zram01.sh
TINFO create '4' zram device(s)
TPASS test succeeded
./zram_lib.sh:行60: tst_tmpdir: 未找到命令
./zram_lib.sh:行65: tst_kvcmp: 未找到命令
TINFO set max_comp_streams to zram device(s)
TINFO /sys/block/zram0/max_comp_streams = '2' (1/4)
TFAIL can't set max_streams '3', get
TINFO /sys/block/zram1/max_comp_streams = '2' (2/4)
TFAIL can't set max_streams '5', get
TINFO /sys/block/zram2/max_comp_streams = '2' (3/4)
TFAIL can't set max_streams '8', get
TINFO /sys/block/zram3/max_comp_streams = '2' (4/4)
TPASS test succeeded
./zram_lib.sh:行92: tst_kvcmp: 未找到命令
TINFO test that we can set compression algorithm
TINFO supported algs: [lzo] lz4 deflate lz4hc 842
TINFO /sys/block/zram0/comp_algorithm = 'lzo' (1/4)
TINFO /sys/block/zram1/comp_algorithm = 'lzo' (2/4)
TINFO /sys/block/zram2/comp_algorithm = 'lzo' (3/4)
TINFO /sys/block/zram3/comp_algorithm = 'lzo' (4/4)
TPASS test succeeded
TINFO set disk size to zram device(s)
TINFO /sys/block/zram0/disksize = '100M' (1/4)
TINFO /sys/block/zram1/disksize = '100M' (2/4)
TINFO /sys/block/zram2/disksize = '100M' (3/4)
TINFO /sys/block/zram3/disksize = '100M' (4/4)
TPASS test succeeded
./zram_lib.sh:行133: tst_kvcmp: 未找到命令
TINFO set memory limit to zram device(s)
TINFO /sys/block/zram0/mem_limit = '100M' (1/4)
TINFO /sys/block/zram1/mem_limit = '100M' (2/4)
TINFO /sys/block/zram2/mem_limit = '100M' (3/4)
TINFO /sys/block/zram3/mem_limit = '100M' (4/4)
TPASS test succeeded
./zram_lib.sh:行202: tst_check_cmds: 未找到命令
TINFO make ext3 filesystem on /dev/zram0
TINFO make ext4 filesystem on /dev/zram1
TINFO make xfs filesystem on /dev/zram2
TINFO make btrfs filesystem on /dev/zram3
TPASS zram_makefs succeeded
TINFO mount /dev/zram0
mkdir: 无法创建目录"zram0": 文件已存在
TINFO mount /dev/zram1
mkdir: 无法创建目录"zram1": 文件已存在
TINFO mount /dev/zram2
mkdir: 无法创建目录"zram2": 文件已存在
TINFO mount /dev/zram3
mkdir: 无法创建目录"zram3": 文件已存在
TPASS mount of zram device(s) succeeded
zram01.sh:行58: tst_check_cmds: 未找到命令
TINFO fill zram0...
TINFO zram0 can be filled with '94936' KB
TINFO fill zram1...
TINFO zram1 can be filled with '92968' KB
TINFO fill zram2...
TINFO zram2 can be filled with '90568' KB
TINFO fill zram3...
TINFO zram3 can be filled with '73657' KB
TINFO zram used 355M, zram disk sizes 380M
TPASS compression ratio: 1.07:1
TINFO zram cleanup

Test zram at kernel 3.10 4.12的更多相关文章

  1. How To Install Kernel 3.10 On Ubuntu, Linux Mint, Debian and Derivates

    n this article I will show you how to install Linux Kernel 3.10 on Ubuntu 13.10 Saucy Salamander, Ub ...

  2. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    int [][]a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; //先对二维数组进行遍历:然后把二维数组合成一个数组 int[] k=new int[11]; int q= ...

  3. 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )

    本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...

  4. 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦

    认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...

  5. 2016年10月12日 星期三 --出埃及记 Exodus 18:23

    2016年10月12日 星期三 --出埃及记 Exodus 18:23 If you do this and God so commands, you will be able to stand th ...

  6. WMware 10 Ubuntu 12.04 进入Unity模式

    /********************************************************************* * WMware 10 Ubuntu 12.04 进入Un ...

  7. Java面试题:n=2\n1*2*5*6\n--3*4\n\nn=3\n1*2*3*10*11*12\n--4*5*8*9\n----6*7\n如何实现如上结构的数据

    今天学长在面试的时候遇到了一道题,然后让大家做一做. 在不看下面的答案之前,悠闲的朋友们一起来抖动一下大脑吧! 以下是我的想法: import java.util.Scanner;public cla ...

  8. 15.找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    package com.bao; public class Erweim { public static void main(String[] args) { int[][]a={{3,2,6},{6 ...

  9. Ubuntu LTS 系统学习使用体会和实用工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04

    Ubuntu LTS 系统学习体会和工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04 ubuntu入门必备pdf:http://download.csdn.net/de ...

随机推荐

  1. 完全二叉树(Complete Binary Tree)

    Date:2019-03-25 19:36:45 判断一棵树是否为完全二叉树 #include <queue> using namespace std; void IsComplete(n ...

  2. int rc = -EINVAL是什么意思

    rc应该是return code的意思,将函数返回值rc初始化为-EINVAL,EINVAL由POSIX.1规范中的一个宏,一般通过包含C标准头文件errno.h,表示参数无效(invalid arg ...

  3. [luogu4151 WC2011] 最大XOR和路径 (线性基)

    传送门 输入输出样例 输入样例#1: 5 7 1 2 2 1 3 2 2 4 1 2 5 1 4 5 3 5 3 4 4 3 2 输出样例#1: 6 说明 [样例说明] 根据异或的性质,将一个数异或两 ...

  4. win主机ping不通linux的IP

    1.虚拟机的中的linux系统设置成桥接模式 2.点击虚拟机的编辑选择虚拟网络编辑器 3.点击更改设置 4点击还原默认设置即可

  5. Linux目录结构组成

    linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp --- 用户所有服务 httpd ...

  6. maven项目发布后访问jsp页面报错

    type Exception report message java.lang.NullPointerException description The server encountered an i ...

  7. nodejs-NPM基本使用

    搜索模块 npm search express 更新模块 npm update express 卸载模块 npm uninstall express 安装模块 npm install express ...

  8. pthread_cond 唤醒特定线程的方法

  9. Android測试APP工具(一)

    近期面试APP开发者的时候,遇到了技术总监问 APP測试的概念性问题.后面感觉主要的项目流程.项目逻辑.屏幕适配. 測试是全然没有问题的.可是对于APP的性能測试.压力測试等高端的測试.还是存在着美中 ...

  10. HDU4763-Theme Section(KMP+二分)

    Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...