Test zram at kernel 3.10 4.12
Use ltp to test zram
测试环境:
#uname -r 3.10.0-327.ali2010.rc6.alios7.x86_64- 没有指定zram algorithm(没有设置), 因为kernel v3.15开始才支持选择compression algorithms:
cat /sys/block/zram0/comp_algorithm。比如:select lzo compression algorithm:echo lzo > /sys/block/zram0/comp_algorithm
测试原理:
- 创建4个zram虚拟磁盘 zram0 zram1 zram2 zram3
- 分别创建4个文件系统,分别大小如下
- /dev/zram0: ext4 100M
- /dev/zram1: ext4 100M
- /dev/zram2: ext4 100M
- /dev/zram3: ext4 100M
- 分别挂载/dev/zram0 /dev/zram1 /dev/zram2 /dev/zram3 到四个目录
- 通过dd工具写四个目录
- 利用free命令获得dd塞满四个目录前后,zram一共使用多少内存
used_mem=$(($mem_free0 - $mem_free1)) total_size=400M- 压缩比 =
$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的更多相关文章
- 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 ...
- 找出如下数组中最大的元素和最小的元素, 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= ...
- 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )
本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...
- 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦
认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...
- 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 ...
- WMware 10 Ubuntu 12.04 进入Unity模式
/********************************************************************* * WMware 10 Ubuntu 12.04 进入Un ...
- 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 ...
- 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 ...
- 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 ...
随机推荐
- SyntaxError Non-ASCII character '\xe5' in file
环境: windows7 Python 2.7.16 在源码中添加注释之后报错如下: (WeChat) E:\WorkHome\Wechat>python firstBlood.py Trace ...
- springboot不加载bootstrap.properties文件
1.首先说一下官网对bootstrap和application两种配置文件的区别: Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 ...
- Vue学习之路第十三篇:v-for指令
v-for指令,看名字想必大家也能猜到其作用,没错,就是用来迭代.遍历的. 1.简单数组的遍历 <body> <divi id="app"> <spa ...
- 《你又怎么了我错了行了吧》【Alpha】Scrum meeting 2
第二天 日期:2019/6/15 前言: 第2次会议在9C-405召开 进行第一天工作的检查,开始第二天工作的安排和学习 1.1 今日完成任务情况以及明天任务安排 姓名 当前阶段任务 下一阶段任务 刘 ...
- 【codeforces 727D】T-shirts Distribution
[题目链接]:http://codeforces.com/problemset/problem/727/D [题意] 给你6种尺寸的衣服; 他们的尺码依次为S, M, L, XL, XXL, XXXL ...
- Spring学习总结(17)——Spring AOP权限管理
每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...
- HDU5926 Mr. Frog’s Game
/* HDU5926 Mr. Frog’s Game http://acm.hdu.edu.cn/showproblem.php?pid=5926 杂题水题 * */ #include <cst ...
- JAVA循环迭代中删除或添加集合数据报java.util.ConcurrentModificationException错误
1.写出下面的输出结果 public class test{ public static void main(String [] args) List<String> list = new ...
- POJ 3301
开始就是瞄着三分来做的,但看题目,感觉是旋转卡壳吧..可是,用了旋转卡壳还三分条毛啊.. 可以令正方形不旋转,而改为令点绕原点旋转,这样,很好的解决了问题,就可以比较X轴最大长度和Y轴最大长度来确定正 ...
- HDOJ 5099 Comparison of Android versions 坑题
现场赛的时候错了十四次. . ... Comparison of Android versions Time Limit: 2000/1000 MS (Java/Others) Memory L ...