1. 引言

Postmark是由著名的NAS提供商NetApp开发,用来测试其产品的后端存储性能。

Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小文件。

Postmark的测试原理是创建一个测试文件池。文件的数量和最大、最小长度可以设定,数据总量是一定的。创建完成后,Postmark对文件池进行一系列的事务(transaction)操作,根据从实际应用中统计的结果,设定每一个事务包括一次创建或删除操作和一次读或添加操作,在有些情况下,文件系统的缓存策略可能对性能造成影响,Postmark可以通过对创建/删除以及读/添加操作的比例进行修改来抵消这种影响。事务操作进行完毕后,Post对文件池进行删除操作,并结束测试,输出结果。

Postmark是用随机数来产生所操作文件的序号,从而使测试更加贴近于现实应用。

输出结果中比较重要的输出数据包括测试总时间、每秒钟平均完成的事务数、在事务处理中平均每秒创建和删除的文件数,以及读和写的平均传输速度。

2. Postmark使用方法(两种):

2.1 使用配置文件

配置文件方式,是将所有配置命令及run放入文件中,由postmark自动读取

配置文件示例:


  1. set size 10000 50000
  2. set transactions 5000
  3. set number 5000
  4. run
  5. quit

运行

./postmark XXX.cfg

2.2 命令行模式

./postmark

进入命令行模式,然后打入相应命令,进行配置,run命令按当前配置运行postmark

将上面配置文件中的命令在命令行中依次执行,结果是相同的,没有任何区别

例如:


  1. [root@msns719 pm-test]# ./postmark-1.51
  2. PostMark v1.51 : 8/14/01
  3. pm>set size 10000 20000
  4. pm>set number 1000
  5. pm>set transactions 50000
  6. pm>run

3. 命令解析

set size min_size max_size     设置文件大小的上下限

set number XXX        设置并发文件数

set seed XXX        设置随机数种子

set transactions XXX         设置事务数

set location 设置工作目录,应该是已有目录,默认为当前目录

+ name weight

- name

name weight 将原有目录全部删除,然后添加参数中的目录

set subdirectory n n 为每个工作目录下的子目录个数

set read n

set write n 设置读写块大小

set buffering true/false

true buffered(defoult)

false nobuffered

set bias read n   n为read/append中read所占比例 n/10

set bias create n    create/delete中create所占比例 n/10

set report verbose(default)/terse       设置报告模式,terse模式的输出没有文字说明,便于通过批处理运行多个测试之后,使用excel对结果进行分析

run [filename] 运行postmark,结果输出到stdout或者文件filename

show [filename] 输出当前设置

help

quit

4. 实例测试

配置文件pm.cfg如下:


  1. set location /mnt/testaudit/pm-test
  2. set subdirectories 1
  3. set size 10000 50000
  4. set transactions 5000
  5. set number 5000
  6. run
  7. quit

运行


  1. [root@RedHat postmark]# ./postmark pm.cfg
  2. PostMark v1.5 : 3/27/01
  3. Reading configuration from file 'pm.cfg'
  4. Creating files...Done
  5. Performing transactions..........Done
  6. Deleting files...Done
  7. Time:
  8.         39 seconds total
  9.         16 seconds of transactions (312 per second)
  10. Files:
  11.         7455 created (191 per second)
  12.                 Creation alone: 5000 files (500 per second)
  13.                 Mixed with transactions: 2455 files (153 per second)
  14.         2553 read (159 per second)
  15.         2447 appended (152 per second)
  16.         7455 deleted (191 per second)
  17.                 Deletion alone: 4910 files (377 per second)
  18.                 Mixed with transactions: 2545 files (159 per second)
  19. Data:
  20.         77.04 megabytes read (1.98 megabytes per second)
  21.         234.28 megabytes written (6.01 megabytes per second)
  22. [root@RedHat postmark]#

此benchmark亦可修改为测试多线程的环境。

</article>

[转帖]Postmark - 存储性能测试工具的更多相关文章

  1. RGW/SWIFT对象存储性能测试工具--COSBench安装

    Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 https://github.com/intel-cloud/cos ...

  2. 云存储性能测试工具--COSBench安装

    COSBench安装 Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 1 环境 1.1 操作系统 COSBench可 ...

  3. Android性能测试工具(一)之Emmagee

    Android性能测试工具(一) 之Emmagee Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emm ...

  4. 开源多线程性能测试工具-sysbench

    导读 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL.本文主要演示Mysql测试 ...

  5. Redis性能测试工具benchmark简介

    Redis自己提供了一个性能测试工具redis-benchmark.redis-benchmark可以模拟N个机器,同时发送M个请求. 用法:redis-benchmark [-h -h <ho ...

  6. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  7. NoSQL性能测试工具YCSB-Running a Workload

    写在前面 目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素.对这些产品在性能表现和产品选择上的 ...

  8. 性能测试工具Locust的使用

    一.写在前面 官网:https://www.locust.io/ 官方使用文档:https://docs.locust.io/en/latest/ 大并发量测试时,建议在linux系统下进行. 二.L ...

  9. 性能测试工具 wrk 使用教程

    文章首发自个人微信公众号:小哈学Java 个人网站地址:https://www.exception.site/wrk 被面试官经常问到之前开发的系统接口 QPS 能达到多少,经常给不出一个数值,支支吾 ...

  10. 数据库之redis篇(2)—— redis配置文件,常用命令,性能测试工具

    redis配置 如果你是找网上的其他教程来完成以上操作的话,相信你见过有的启动命令是这样的: 启动命令带了这个参数:redis.windows.conf,由于我测试环境是windows平台,所以是这个 ...

随机推荐

  1. 新一代通信协议 - Socket.D

    一.简介 Socket.D 是一种二进制字节流传输协议,位于 OSI 模型中的5~6层,底层可以依赖 TCP.UDP.KCP.WebSocket 等传输层协议.由 Noear 开发.支持异步流处理.其 ...

  2. Kubernetes常见错误总结

    1.屏幕持续打印Pod日志报error: unexpected EOF错误 Kubernetes: requesting flag for "kubectl logs" to av ...

  3. 如何在IIS上部署docsify以及404问题

    操作步骤 创建一个文件夹,在文件夹中新建2个文件 index.html:入口文件,整个网站只需要这个html文件,其他文件都是md文件 README.md:主页内容,如果没有这个文件,访问时提示404 ...

  4. cookie和session的一些疑惑以及ai解答

    我: 那么当浏览器关闭的时候,当再次访问这个地址的时候,为什么之前设置的cookie没有被删除掉?而且按照你说的这次可能会生成一个新的sessionID,那么cookie里面的其他数据,它是如何获取上 ...

  5. 华为云HBase冷热分离最佳实践

    本文分享自华为云社区<华为云HBase 冷热分离最佳实践>,作者:pippo. HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面 ...

  6. 执行计划缓存,Prepared Statement性能跃升的秘密

    摘要:一起看一下GaussDB(for MySQL)是如何对执行计划进行缓存并加速Prepared Statement性能的. 本文分享自华为云社区<执行计划缓存,Prepared Statem ...

  7. 零代码修改,教你Spring Cloud应用轻松接入CSE

    摘要:本文介绍了Sermant Agent的接入原理和如何使用Sermant Agent无修改接入CSE. 本文分享自华为云社区<Spring Cloud应用零代码修改接入华为云微服务引擎CSE ...

  8. 掌握渗透测试,从Web漏洞靶场搭建开始

    摘要:漏洞靶场,不仅可以帮助我们锻炼渗透测试能力.可以帮助我们分析漏洞形成机理.更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果. 本文分享自华为云社区<Web漏洞 ...

  9. C# 和 java 基本数据类型

    C# 和 java 基本数据类型 C#类型 java类型 描述 默认值 bool boolean 布尔值 False byte byte 8 位无符号整数 0 char char 16 位 Unico ...

  10. 思考:Https情况下前端密码是否需要加密

    例子: 不加密例子: image-20210719153550042 加密例子: image-20210719153812653 结论:前端账号密码需要加密. 论点一:https是否真的"安 ...