Glusterfs读写性能测试与分析
一、测试目的:
1、测试分布卷(Distributed)、分布式复制卷(Distributed-Replicate)、条带卷(Strip)和分布式条带复制卷(Distributed-Strip-Replicate)的读写性能。
2、测试网络对文件系统读写性能的影响。
一、测试准备:
1、三台千兆网测试机:dn151,dn152,dn154。每台测试机上有七块1T硬盘,dn151等是测试机的hostname。hostname配置方式,以及glusterfs的安装见https://www.cnblogs.com/ForestCherry/p/10876049.html。
2、创建目录:mkdir -p /data01 /data02 /data03 /data04 /data05 /data06 /data07 /Distributed-test /Distributed-Replicate-test /Strip-test /Distributed-Strip-Replicate-test(前面的是磁盘挂载目录,后面是卷节点挂载目录)
3、挂载磁盘:mount /dev/sdb /data01;mount /dev/sdc /data02;mount /dev/sdb /data03;mount /dev/sde /data04;mount /dev/sdf /data05;mount /dev/sdg /data06;mount /dev/sdh /data07;
4、测试命令:time dd if=/dev/zero bs=1M count=4096 of=4G.file(也可以借助fio工具测试)
三、开始测试:
1、创建gluster集群:gluster peer probe dn152;gluster peer probe dn154(这里是在dn151上创建的,也可以在其他两台上创建)
2、创建卷:(任意一台上执行)
1)gluster volume create Distributed-Strip-Replicate-test strip 2 replica 2 dn151:/data01 dn152:/data01 dn151:/data02 dn152:/data02 dn151:/data03 dn152:/data03 dn151:/data04 dn152:/data04 force 创建分布式条带复制卷
2)gluster volume create Distributed-test dn151:/data05 dn152:/data05 force 创建分布卷
3)gluster volume create Strip-test strip 2 dn151:/data06 dn152:/data06 force 创建条带卷
4)gluster volume create Distributed-Replicate-test replica 2 151:/data07 dn152:/data07 force 创建分布式复制卷
3、启动卷:gluster volume start Distributed-Strip-Replicate-test;gluster volume start Distributed-test; gluster volume start Strip-test;gluster volume start Distributed-Replicate-test(任意一台上执行)
4、挂载卷:mount -t glusterfs dn151:/Distributed-Replicate-test Distributed-Replicate-test;mount -t glusterfs dn151:/Distributed-Strip-Replicate-test Distributed-Strip-Replicate-test; mount -t glusterfs dn151:/Distributed-test Distributed-test;mount -t glusterfs dn151:/Strip-test Strip-test(每台上都要执行)
5、查看卷信息:gluster volume info
图一:




6、测试及现象:
dn151上:
图二:

dn152上:
图三:

dn154上:
图四:

dn151上:
图五:

dn152上:
图六:

说明:上诉dd命令是在一台上执行完后再去另一台上执行(相当于只测试了读或写),如果几台同时执行dd(相当于并发读写测试),那么性能会有所下降。
四、测试结果分析:(来自小白的简单分析,可能不准确,求大神指教)
1、glusterfs下读写请求的处理流程分析:请参照https://www.cnblogs.com/chaozhu/p/6402000.html
2、从图二或图三或图四可以看出:本地 > 条带卷 > 分布卷 ≈ 复制卷 ≈ 分布式条带复制卷
分析:
1)条带卷大于分布卷:结合图五图六可以看出,在dn151上执行dd命令,分布卷目录下根据哈希算法,随机将文件4G.flie151存储在dn152:/data05上;而条带卷是将4G.flie151分别存在dn151和dn152上的/data06上。所以就跨网来说,分布卷时4G全部使用socket存储,而条带卷只有2G文件通过socket存储,所以此时表现条带卷速度大于分布卷(如果分布卷存储通过哈希算法,在dn151上也将文件存储在dn151上,那么肯定是分布卷速度远大于条带卷速度,读者可自行测试)。
2)值得一提,创建条带卷时,当Number of Bricks: 为n*2(n >= 2)时,如果创建语句为:gluster volume create Strip-test strip 2 dn151:/data06 dn151:/data07 dn152:/data06 dn152:/data07 force(未跨网络分段),
如果创建语句为:gluster volume create Strip-test strip 2 dn151:/data06 dn152:/data06 dn151/data07 dn152:/data07 force(跨网络分段,不好的习惯,性能下降),两者的速度是不一样的,前者速度明显大于后者。
3)分布式复制卷 ≈ 分布式条带复制卷:测试文件不够大或者网络条件制约(千兆网的传输速率门槛大概在128MB/s),没体现出条带卷的优势。
2、图二和图三和图四对比可得:图四 < 图三 = 图二
分析:拿复制卷来说。
1)无论是在dn151上执行还是在dn152上执行,文件都是先在本地创建了4G.flie151或4G.flie152,然后再通过socke备份到另一台上,而当本地执行完请求后就会返回;而在dn154上执行,是要通过socket将文件存储到dn151和dn152上,所以返回响应会更久。
2)从结果117MB/s的测试结果可以看出,网络是制约影响文件系统读写性能的主要因素。
3、求指教:
1、以上分析是在当前条件下测试,结果和分析可能不太准确,如有不当,还请指教。
2、网上说fuse层对性能的影响很小,那么为什么在本地执行dd命令和通过flusterfs的挂载目录执行dd命令速度会慢那么多(咱们可以在dn151上执行 gluster volume create test-volume dn151:/test1 /dn151:/test2 force试一下)
3、求大神对上面的测试结果进行专业的分析。
Glusterfs读写性能测试与分析的更多相关文章
- 161220、使用Spring AOP实现MySQL数据库读写分离案例分析
一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...
- LoadRunner性能测试结果分析
LoadRunner性能测试结果分析http://www.docin.com/p-793607435.html
- Greenplum 简单性能测试与分析
如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理 ...
- Apache ab性能测试结果分析
Apache ab性能测试结果分析 测试场景:模拟10个用户,对某页发起总共100次请求. 测试命令: ab -n 100 -c 10 地址 测试报告: Server Software: 被测服务器软 ...
- 170301、使用Spring AOP实现MySQL数据库读写分离案例分析
使用Spring AOP实现MySQL数据库读写分离案例分析 原创 2016-12-29 徐刘根 Java后端技术 一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案 ...
- LoadRunner性能测试结果分析(转载)
性能测试的需求指标:本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率.内存使用率分别不超过75 ...
- 使用Spring AOP实现MySQL数据库读写分离案例分析
一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库 ...
- Web项目性能测试结果分析
1.测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几 ...
- Linux系统性能测试工具(九)——文件系统的读写性能测试工具之iozone
本文介绍关于Linux系统(适用于centos/ubuntu等)的文件系统的读写性能测试工具-iozone: 参考链接: https://www.cnblogs.com/Dev0ps/p/788938 ...
随机推荐
- Java实现 蓝桥杯VIP 算法训练 输出米字形
例如:n=3时,包含A,B,C:n=4时,包含A,B,C,D. 矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北.正北.东北.正西.正东.西南.正南.东南八个方向各有一条由大写字母组 ...
- Java实现蓝桥杯VIP算法训练 预测身高
试题 算法训练 预测身高 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述: 生理卫生老师在课堂上娓娓道来: 你能看见你未来的样子吗?显然不能.但你能预测自己成年后的身高,有公式: 男 ...
- Java实现 蓝桥杯VIP 算法提高 大数加法
算法提高 大数加法 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个正整数a,b,输出a+b的值. 输入格式 两行,第一行a,第二行b.a和b的长度均小于1000位. 输出格式 一行, ...
- Java实现 LeetCode 50 Pow(x,n)
50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...
- Java实现第八届蓝桥杯迷宫
迷宫 题目描述 X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R ...
- iOS -NSOperation——高级的并发处理方法
NSOperation是Objective-C中一种高级的并发处理方法,现在对GCD的封装;功能比GCD更强大! 两个概念 操作: 操作队列: NSOperation多线 ...
- go语言实现"生产者"和"消费者"的例子
学习java的多线程的时候最经典的一个例子就是生产者消费者模型的例子,最近在研究go语言协程,发现go提供的sync包中有很多和java类似的锁工具,尝试着用锁工具配合协程实现一个"消费者& ...
- 详解 Seata Golang 客户端 AT 模式及其使用
源码seata-golang 概述 我们知道 Seata Java Client 的 AT 模式,通过代理数据源,实现了对业务代码无侵入的分布式事务协调机制,将与 Transaction Coor ...
- InnoDB存储引擎的事务
事务的任务是保证一系列更新语句的原子性,锁的任务是解决并发访问可能导致的数据不一致问题.如果事务与事务之间存在并发操作,此时可以通过隔离级别实现事务的隔离性,从而实现数据的并发访问. 1 原子性(At ...
- 关于mysql auto-increment
创建表语句如下mysql> show create table Tautoincrement\G *************************** 1. row ************* ...