分类: LINUX
2013-04-25 14:09:43
原文地址:Iometer测试集群文件系统性能 作者:zyd_cu
Iometer 是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。
Iometer 既是工作负载生成器(也就是说,它可以进行输入输出操作,以便增加系统的负荷),它还是一个测量工具(也就是说,它检查并且记录I/O 操作的性能和对系统的影响)。它可以被配置为模拟任何程序或者基准测试程序的磁盘和网络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测量单系统或者多系统(网络)的负载。
Iometer 可以被用来测量和描述磁盘和网络控制器的性能,总线的带宽和时延容量,对于附带驱动器的网络吞吐量,共享总线的性能,系统级别的硬件驱动的性能,系统级别的网络性能。
Iometer 包含了两个程序,Iometer 和 Dynamo.
Iometer 是控制程序。使用图形用户接口(GUI),你可以配置负载,设置操作参数,启动和停止测试。Iometer 告诉Dynamo 去做什么,搜集分析数据,将分析数据输出到文件中。在某一时刻,只能有一个Iometer副本运行;典型的情况是运行在服务器上。
Dynamo 是负载生成器。它没有用户界面。当接收到Iometer 发送过来的命令,Dynamo执行相应的I/O 操作并且记录性能信息,然后将数据返回给Iometer。它可以有多个副本同时运行;典型的情况是服务器上运行一个副本,每个客户端运行一个副本。Dynamo 是多线程的;每一个副本都可以模拟多客户程序的工作负载。Dynamo中的每一个运行的副本称为一个管理者(Manager);副本中的一个线程称为工作者(Worker)。
Iometer配置
1. Disk Targets---测试磁盘目标
当dynamo启动后,它会将所在机器上所有的网络接口,磁盘(包括虚拟磁盘,文件系统的信息)报告给Iometer,测试者可以在Iometer的控制面板上选择测试目标。目标上带斜杠的图标,代表该目标在测试之前需要先准备好iobw.tst文件,在测试之前会先写目标,直到达到Maxium DiskSize为止。
Maxium DiskSize : 创建iobw.tst文件的扇区数,为0代表填满真个磁盘;
Starting DiskSector:(从iobw.tst的xx扇区开始测试);
# of outstanding I/Os: 同时发送的IO数;
2. Network Targets --- 网络接口目标
参考1,通常不需要进行配置;
3. Access Specifications---负载特性
可以选择也定义好的负载,也可以自定义,主要在于设置读写比例,顺序/随机比例;
Transfer Request Size: 4K, 8K …
Percent Read/Write Distribution: 67% Read,33% Write …
Percent Random/Sequential:100% Random …
4. Results Display --- 设置结果更新间隔
可选择需要测试的目标,拖动滑块可改变更新间隔,通常设置为10s,所有的Workers共享这一配置参数;
5. Test Setup --- 设置测试时间等
代表每种负载测试的时间,所有的Workers共享这一配置参数。针对每个Worker所选择的负载,dynamo将依次进行测试,并将结果发给Iometer,Iometer将同一时间段内的测试值进行求和。
如有两个Workers,每种负载测试时间为1mins:
Worker1的负载:(1) 4K 100%Read 0%Random
(2) 32K 100%Read 0%Random
(3) 16K 100%Read 0%Random
Worker2的负载:(1) 16K 100%Read 0%Random
1min:Worker1,Worker2的负载1启动,结束后发送给Iometer,Iometer进行汇总;
2min:Worker1的负载2启动,此时Worker2的负载已经测试完毕,将结果发给Iometer;
3min:Worker1的负载3启动,完成后将结果发给Iometer;
从上面的测试可以看出,Iometer是按测试时间聚类,而不是按测试负载聚类。
实验环境拓扑结构为一台网关+局域网内若干机器,需要做的准备工作包括:
1.在网管上安装vncserver,使得我的机器能通过vnc viewer控制网关机,然后在网关机上通过ssh登录到各个测试节点。
2.准备一台windows节点,安装F-secure ssh server,在windows上启用远程桌面连接(桌面右键==》属性==》远程==》ss启用远程连接。
3.在网关上配置ip table,使我的机器能通过ssh登录到局域网内各个节点,方便文件传输,当然也可先将文件传到网关机上,再通过scp传到各个局域网节点上。在网关的配置端口映射项,将网关的3389端口的访问,映射到windows节点的3389端口上,从而我的机器能通过远程桌面连接控制windows节点。
4.给windows用户配置密码(ssh默认不支持空密码,远程桌面连接也需要有密码)。
5.远程登录到windows节点,安装Iometer。
6.将Iometer(linux 源码包)传到各个测试节点上,并安装,生成可执行文件dynamo。
7.将系统的代码传输到各个测试节点,并重新编译生成可执行文件。s
至此实验环境已经搭建好。
测试模型
在分布式系统的所有客户端上运行dynamo,Iometer将各个节点的数据汇总,就可以看出整个集群总的吞吐率等,负载类型,以及存储节点和客户端数目比例对集群性能都会有很大的影响。