首页 > 其他分享 >Bonnie++ 工具学习记录

Bonnie++ 工具学习记录

时间:2024-04-10 21:31:07浏览次数:24  
标签:记录 ++ Bonnie -- sec 测试 CP

Bonnie++ 工具学习记录

文章目录


Bonnie++ 是一款专门用于测试硬盘和文件系统性能的开源工具。它通过模拟各种文件操作来评估存储设备的I/O性能,包括顺序读写、随机访问和重写操作。Bonnie++ 的测试结果有助于理解硬盘或文件系统在不同工作负载下的表现,从而为系统优化和硬件选择提供数据支持。

主要特点
  1. 全面性: 能够测试硬盘的读写速度以及文件系统的性能。
  2. 详细报告: 提供详细的性能测试报告,便于分析。
  3. 适用范围广: 可以用于测试各种类型的硬盘,包括本地硬盘、外接硬盘、SSD等。
  4. 高负载测试: 特别适合于在高负载条件下测试磁盘I/O性能和稳定性。
如何下载安装 Bonnie++

Bonnie++ 可以在多数Linux发行版中通过包管理器安装,也可以从源代码编译安装。

通过包管理器安装:

  • Debian/Ubuntu:
sudo apt-get update
sudo apt-get install bonnie++
  • CentOS/RHEL:
sudo yum install epel-release
sudo yum install bonnie++
  • Fedora:
sudo dnf install bonnie++

从源代码编译安装:

下载最新的源代码包:访问 Bonnie++ 的官方网站下载最新版本的源代码。
解压源代码包:

tar -zxvf bonnie++-版本号.tar.gz

编译安装:

cd bonnie++-版本号
./configure
make
sudo make install
使用 Bonnie++
常见使用方式:

Bonnie++ 的使用方式主要依赖于命令行参数来指定测试的类型和范围。

基本使用:测试并生成报告。
bonnie++ -d /测试目录 -r 内存大小 -u 用户名
#-d 指定测试目录,-r 指定测试时使用的内存大小(单位是MB),-u 指定运行测试的用户。
#详细输出:使用 -x 参数可以指定测试的次数,使用 -m 参数可以给测试机器指定一个名称,这在比较不同机器的性能时很有用。
bonnie++ -d /测试目录 -r 内存大小 -u 用户名 -x 测试次数 -m 测试机器名称

bonnie++ -d /tmp/bonnie -r 4G -u root -x 3 -m TestServer01
#-d /tmp/bonnie:指定测试目录为 /tmp/bonnie。这意味着Bonnie++ 将在这个目录下创建测试文件。请确保这个目录存在且有足够的空间进行测试。
#-r 4G:指定内存大小为 4GB。这个参数应该设置为你想要测试的内存量的两倍,但不要超过实际可用内存的大小。
#-u root:以 root 用户身份运行测试。请确保当前用户有权限执行该命令,或者使用 sudo。
#-x 3:指定测试次数为3。这意味着Bonnie++ 将会连续运行三次测试,以提供更稳定的性能数据。
#-m TestServer01:给测试机器指定一个名称为 TestServer01。这在你需要对比不同机器或不同配置下的性能时非常有用
测试结果分析:

Bonnie++ 的输出包含了多项指标,如顺序写速度、顺序读速度、随机寻道速度等。这些指标对于分析硬盘或文件系统性能至关重要。

顺序输出性能:

  • ​ 写入速度 (Sequential Output Write): 测试系统写入数据到硬盘的速度。
  • ​ 重写速度 (Sequential Output Rewrite): 测试系统重写硬盘上已有数据的速度。

顺序输入性能:

  • ​ 读取速度 (Sequential Input Read): 测试从硬盘读取数据的速度。

随机访问性能:

  • ​ 随机寻道时间/速度 (Random Seeks): 测试硬盘执行随机读取操作的效率,通常以每秒可以完成的寻道次数表示。

文件系统性能:

  • ​ 每秒创建文件数 (File Create): 测试系统每秒可以创建多少个文件。
  • ​ 每秒删除文件数 (File Delete): 测试系统每秒可以删除多少个文件。
  • ​ 文件创建和删除的速度 (Create/Delete): 综合测试创建和删除文件的性能。

并发访问性能:

  • ​ 对于支持并发操作的测试,Bonnie++ 还会报告在并发环境下的读写性能。

测试输出结果示例

Version  1.98       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        TestServer01    K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
Latency             142ms     178ms     190ms     104ms     112ms     143ms
Version  1.98       ------Sequential Create------ --------Random Create--------
TestServer01        -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 15000  49 +++++ +++ 12000  43 14000  51 +++++ +++ 11000  38
Latency             100ms     500us     800us     100ms     300us     500us

结果分析:

  • Version: Bonnie++ 的版本号,这里是 1.98。
  • Sequential Output: 这一部分展示了顺序写入、重写的性能。
  • Block: 表示通过块操作进行的顺序写入和重写的速度和CPU使用率。例如,如果块写入速度是 K/sec,表示每秒可以写入多少千字节。
  • %CP: CPU使用百分比,用来衡量操作的CPU密集度。
  • Sequential Input: 这部分提供了顺序读取的性能数据。
  • Block: 同样,展示了通过块操作进行的顺序读取的速度和CPU使用率。
  • Random: 显示了随机读取(Seeks)的性能,即每秒可以完成多少次随机读取操作。
  • Sequential Create & Random Create: 测试文件的创建、读取和删除性能。
  • files: 同时操作的文件数量。
  • /sec: 每秒可以完成的操作数量。
  • %CP: 操作时CPU的使用率。
  • Latency: 显示了各种操作的延迟时间。

较高的K/sec值表示更好的I/O性能,较低的延迟和较低的CPU使用率表示系统在处理I/O操作时更有效率。实际测试时,测试环境的具体情况,例如硬盘类型(SSD或HDD)、文件系统类型、系统内存等因素,它们都会影响测试结果。

主要使用场景

Bonnie++ 主要应用于以下场景:

  • 性能评估: 在购买新硬件前评估其性能,或比较不同硬件配置下的性能差异。

  • 系统优化: 分析当前系统的瓶颈,为系统调优提供依据。

  • 稳定性测试: 在高负载环境下测试存储系统的稳定性,确保系统在极端条件下仍能正常工作。

标签:记录,++,Bonnie,--,sec,测试,CP
From: https://blog.csdn.net/weixin_40539956/article/details/137552875

相关文章

  • C++ 标准库类型priority_queue
    C/C++总述:StudyC/C++-CSDN博客 堆(数据结构):堆-CSDN博客priority_queue(优先队列)在优先队列中,元素被赋予优先级(按约定的函数来赋予优先级,底层通过堆来实现)。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出(firstin,largestout)的行为特征。定义......
  • 《C++程序设计》阅读笔记【7-堆和拷贝构造函数】
    ......
  • C++ 获取数组大小、多维数组操作详解
    获取数组的大小要获取数组的大小,可以使用sizeof()运算符:示例intmyNumbers[5]={10,20,30,40,50};cout<<sizeof(myNumbers);结果:20为什么结果显示为20而不是5,当数组包含5个元素时?这是因为sizeof()运算符返回类型的大小(以字节为单位)。要找出数组有多少......
  • C++ Primer Plus(第6版):封装、继承与多态
    C语言编程原理C语言在最初面试时是一种过程性(procedural)语言,这意味着它强调的是编程的算法方面,程序命令计算机按照一系列流程生成特定的结果。但是随着程序规模的扩大,程序经常使用分支语句,很多旧式程序的执行路径很混乱(被称为“意大利面条式编程”,突出一个混乱程度)。计算机科学家......
  • 突破编程_C++_网络编程(Windows 套接字(阻塞模式与非阻塞模式))
    1阻塞模式与非阻塞模式的概念(1)阻塞模式概念:在阻塞模式下,当套接字执行I/O操作时,如果操作不能立即完成,调用函数会一直等待直到操作完成。在等待期间,执行操作的线程会被阻塞,无法继续执行其他任务。特点:简单直观:对于许多简单的网络应用来说,阻塞模式编程简单直观,易于理......
  • c++11实现线程池
    c++11实现线程池c++线程库thread创建线程和同步的方式jion,detach#include<iostream>#include<thread>voidprintf_hw(std::strings){ std::cout<<s<<"\n";}intmain(){ std::threada(printf_hw,"nihao"); //a.join();//同步 a.de......
  • [C++] 小游戏 斗破苍穹 2.10.1 版本 zty出品
    目录前言先赞后看 养成习惯正文后记前言   大家好,今天zty(<-痧蔽)带来的是斗破苍穹2.10.1版本本版本为战斗更新加入了四个新怪物和四个新装备并且修复了许多bug,希望大家喜欢,今天的赞不多要要50个就够了先赞后看 养成习惯正文#include<stdio.h>#inc......
  • template—模板初阶(C++)
        本篇将会对Cpp中的模板进行一个简单的介绍(后序还关系模板进阶,对模板的内容进行更深入的讲解),其中包括模板的使用:函数模板、类模板,以及对于泛型编程的理解。其中的重点为函数模板,介绍了函数模板的原理、隐式实例化和显示实例化、还有模板参数的匹配规则。目录如下......
  • 内存管理new and delete(C++)
        在本篇中,将会较为详细的介绍在Cpp中的两个新操作符new和delete,将会介绍其中的底层原理,以及这两个操作符的使用方法。其中还介绍了new/delete操作符使用的细节,还扩展了一些有关定位new表达式的知识点。最后总结了malloc/free与new/delete的区别。目......
  • 错题记录-华为海思
    华为海思数字芯片参考:FPGA开发/数字IC笔试系列(5)华为海思IC笔试解析FPGA开发/数字IC笔试系列(6)华为海思IC笔试解析SystemVerilogFunction与Task的区别$readmemh与$readmemb这两个系统任务是用来从指定文件中读取数据到寄存器数组或者RAM、ROM中。除了可......