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. python的jieba分词

    # 官方例程 # encoding=utf-8 import jieba seg_list = jieba.cut("我来到北京清华大学", cut_all=True) print ...

  2. Nginx负载均衡health_check分析

    在Nginx负载均衡中,我们很难保证说每一台应用服务器都能一直正常的运行下去.但是我们可以通过设置Nginx来检测这些应用服务器,检测这些服务器当中不能访问的. Nginx的检测方式分为两种,一种是被 ...

  3. CSS - Span 下的width设置不可用?

    解决:Span 下的width设置不可用? 内联元素-span有根据内容自动伸缩的能力,当需要对其宽度设定时,出现无效的情况. Demo:http://jsfiddle.net/JSDavi/ad62 ...

  4. django rest-farme-work 的使用(2)

    serialization (序列化) 本测试项目例子地址为: tomchristie/rest-framework-tutorial 开始构建一个新的程序 创建一个新的环境 virtualenv e ...

  5. hdu 1868 水

    #include<stdio.h> int main() { int n,m,i,j,k; while(scanf("%d",&n)!=EOF) { k=2; ...

  6. VS调试ASP.NET浏览器会不断的发出POLL请求

    Poll管道不断发送请求问题! Visual Studio 2013的一个问题Visual Studio 2013中在IE浏览器浏览localhost网站时候,发现会不断有下面链接的请求,这个是怎么回 ...

  7. 组件的使用(三)AutoCompleteTextView的使用

    AutoCompleteTextView经常使用的属性: android:completionHint 下拉列表以下的说明性文字 android:completionThreshold 弹出下来列表的 ...

  8. NYOJ 298

    利用矩阵来做变换,参考Max大神的思想的,虽然不是同一道题. ----------- 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转    这里的操 ...

  9. hdu5319 Painter(模拟)

    题目链接:点击打开链接 题目大意:给一个矩形.有两把刷子,一把刷红色,一把刷蓝色,红色的方向是东南,蓝色的方向是西北,红色加蓝色等于绿色,如今已知这面墙当前的状态.求从白墙到这个状态最少刷了多少次. ...

  10. POJ1390 Blocks 【动态规划】

    Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4173   Accepted: 1661 Descriptio ...