华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 fio 深度测评华为云云耀云服务器L实例的磁盘性能

在这里插入图片描述

本文收录在专栏:#云计算入门与实践 - 华为云 专栏中,本系列博文还在更新中

相关华为云云耀云服务器L实例评测文章列表如下:

  • 华为云云耀云服务器L实例评测 | 从零开始:云耀云服务器L实例的全面使用解析指南
  • 华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 Geekbench 深度测评华为云云耀云服务器L实例的处理器性能
  • 华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能
    华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 fio 深度测评华为云云耀云服务器L实例的磁盘性能
  • [ 云计算 华为云 ] 解决办法:如何更换华为云云耀云服务器L实例的镜像

文章目录

    • 一、评测背景
    • 二、评测声明
    • 三、被评测服务器参数及准备
      • 3.1 被评测服务器基本参数
      • 3.2 测试机采购
        • 3.2.1 华为云云耀云服务器L实例
        • 3.2.2 友商的轻量应用服务器 lighthouse
    • 四、使用 fio 测试磁盘 I/O 性能
      • 4.1 fio 安装
      • 4.2 fio 常用测试场景与测试方法
        • 4.2.1 测试场景
        • 4.2.2 测试方法
          • (1)使用命令行测试
          • (2)使用配置文件进行测试
        • 4.2.3 各运行参数说明
      • 4.2 在华为云云耀云服务器L实例运行 fio 测试
      • 4.3 友商的轻量应用服务器 lighthouse 运行 fio 测试
    • 五、最终测试比对结果
    • 六、文末总结

一、评测背景

本文是继之前文章:《华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 Geekbench 深度测评华为云云耀云服务器L实例》与 华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例后,继续探讨华为云的创新产品【华为云云耀云服务器L实例】,为读者提供全面的评测信息,本篇文章重点是测试其【华为云云耀云服务器L实例】的磁盘 I/O 性能。我们仍然选取了对比机器,也就是友商的轻量级应用服务器 lighthouse,经过使用 fio 的详细测试,我们将对华为云的最新云耀云服务器L实例的CPU处理器性能进行严格测试和分析,以帮助你更加清晰的认识华为云的最新云耀云服务器L实例,以及帮助你更好的在众多繁杂的服务器中进行选择判断。

二、评测声明

本人任何测试其云计算或者其他商品,都站在如下声明立场

尽管本文是在参与华为云云耀云服务器L实例评测活动的背景下编写的,但是本博主是站在一个中立的角度来进行评测,不存在因为是活动文上来就无脑吹,这有背征文的目的以及我的个人初衷

三、被评测服务器参数及准备

3.1 被评测服务器基本参数

华为云云耀云服务器L实例现阶段提供2核2G2核4G2核8G的 3 种 CPU 和内存规格,不同 CPU 和内存规格与系统盘、峰值带宽和流量包组合共有 6 种实例规格。这里选择的友商测试机为轻量应用服务器 lighthouse,该友商的轻量型应用服务器与华为云云耀云服务器L实例类似,都提供不同的应用场景,不通过的镜像支持以及规格,可以说是相互的对标产品。

本测试使用的华为云云耀云服务器L实例与友商的轻量应用服务器 lighthouse均位于广州区域,且配置均为2核2G,配置参数表格为:

规格配置华为云云耀云服务器L实例友商的轻量应用服务器 lighthouse
核心数2核2核
内存2G2G
操作系统CentOS 7.6CentOS 7.6
区域广州广州

3.2 测试机采购

3.2.1 华为云云耀云服务器L实例

因为本文重点是对华为云云耀云服务器L实例进行处理器层面的评测,由于篇幅有限,此处步骤略过,对于如何采购华为云云耀云服务器L实例具体步骤细节,参考我之前的博文中的第三节即可:华为云云耀云服务器L实例评测 | 从零开始:云耀云服务器L实例的全面使用解析指南

购买后服务器规格如下:

在这里插入图片描述

3.2.2 友商的轻量应用服务器 lighthouse

对比测试机采购步骤略过,因为不是今天的主角,直接在下面贴出购买后的截图

在这里插入图片描述

四、使用 fio 测试磁盘 I/O 性能

“fio” 是一个广泛用于评估磁盘 I/O 性能的工具,它支持多达19种不同的 I/O 引擎,包括但不限于:sync、mmap、libaio、posixaio、SG v3、splice、null、network、syslet、guasi、solarisaio等。fio 不断更新,目前最新版本为 v3.19,你可以在其官方网站 “fio” 上获取相关信息。

  • fio 官方网站:https://sourceforge.net/directory/software-development/windows/

使用 fio 进行磁盘压力测试有两种主要方法。一种是通过命令行参数进行配置;另一种是通过读取配置文件来设置测试参数。这两种方法在功能上差异不大,但后者允许你结合使用诸如 sh 和 screen 等工具,以便长时间运行测试。

为了演示如何使用 fio 我们这里直接使用华为云云耀云服务器L实例进行演示

4.1 fio 安装

本文以 华为云云耀云服务器L实例评测 CentOS 7.6 操作系统的云主机为例,可以直接yum安装测试工具 fio。

[root@hcss-ecs-d51e ~]# yum install -y libaio
[root@hcss-ecs-d51e ~]# yum install -y libaio-devel
[root@hcss-ecs-d51e ~]# yum install -y fio

出现 Complete! 后,确认安装完成,如下图:

在这里插入图片描述

4.2 fio 常用测试场景与测试方法

4.2.1 测试场景
  • 测试延迟

    队列深度为1,bs设置为4k,也就是模拟单个队列读写的延迟测试

  • 吞吐

    队列深度为32,bs设置为128k,测试最大能力去跑满整个磁盘带宽

  • iops

    队列深度为32,bs设置为4k,要在最短的时间内多去读磁盘
    小文件通常测试随机读写,大文件通常测试顺序读写。

常见测试场景参照(重要):

  1. 顺序读写(吞吐量,常用单位为 MB/s):文件在硬盘上存储位置是连续的。

    适用场景:大文件拷贝(比如视频音乐)。速度即使很高,对数据库性能也没有参考价值。

  2. 4K 随机读写(IOPS,常用单位为次):在硬盘上随机位置读写数据,每次 4KB。

    适用场景:操作系统运行、软件运行、数据库。

4.2.2 测试方法

fio 的测试方法有两种,一种是直接使用命令行,另外一种是可以使用测试配置文件,区别是使用测试配置文件可以定期进行执行测试。

注意(非常重要):

  • 请不要在系统盘上进行 fio 测试,避免损坏系统重要文件。
  • 为避免底层文件系统元数据损坏导致数据损坏,请不要在业务数据盘上进行测试。
  • 请确保/etc/fstab文件配置项中没有被测硬盘的挂载配置,否则将导致云服务器启动失败。
  • 测试硬盘性能时,建议直接测试裸数据盘(如/dev/vdb)。
  • 测试文件系统性能时,推荐指定具体文件测试(如/data/file)。
  • fio 测试建议在空闲的、未保存重要数据的磁盘上进行,并在测试完成后重新创建文件系统。
(1)使用命令行测试

filename需要指定设备中的具体磁盘盘符,如下以/dev/sda为例:

顺序读 BW

fio -name=Seq_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda

顺序写 BW

fio -name=Seq_Write_IOPS_Test -group_reporting  -direct=1 -iodepth=128 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda

随机读 IOPS

fio -name=Rand_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda

随机写 IOPS

fio -name=Rand_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda

混合读写

fio -name=Read_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randrw -rwmixread=70 -refill_buffers -norandommap -randrepeat=0 -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -ioscheduler=noop -filename=/dev/sda

写吞吐量

fio -name=Write_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda

读吞吐量

fio -name=Read_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=600 -filename=/dev/sda
(2)使用配置文件进行测试

下面的是示例的测试文件,可以直接创建一个测试文件叫做:fio.conf

# fio.conf
[global]
ioengine=libaio
iodepth=128
direct=0
thread=1
numjobs=16
norandommap=1
randrepeat=0
runtime=60
ramp_time=6
size=1g
directory=/your/path[read4k-rand]
stonewall
group_reporting
bs=4k
rw=randread[read64k-seq]
stonewall
group_reporting
bs=64k
rw=read[write4k-rand]
stonewall
group_reporting
bs=4k
rw=randwrite[write64k-seq]
stonewall
group_reporting
bs=64k
rw=write

文件保存好后,直接使用下面的命令进行运行:

fio fio.conf
4.2.3 各运行参数说明
  • filename: 指定文件 (设备) 的名称。可以通过冒号分割同时指定多个文件,如 filename=/dev/sda:/dev/sdb。
  • directory: 设置 filename 的路径前缀。在后面的基准测试中,采用这种方式来指定设备。
  • name: 指定 job 的名字,在命令行中表示新启动一个 job。
  • direct: bool 类型,默认为 0, 如果设置成 1,表示不使用 io buffer。
  • ioengine: I/O 引擎,现在 fio 支持 19 种 ioengine。默认值是 sync 同步阻塞 I/O,libaio 是 Linux 的 native 异步 I/O。关于同步异步,阻塞和非阻塞模型可以参考文章 使用异步 I/O 大大提高应用程序的性能”。
  • iodepth: 如果 ioengine 采用异步方式,该参数表示一批提交保持的 io 单元数。该参数可参考文章“Fio 压测工具和 io 队列深度理解和误区”。
  • rw: I/O 模式,随机读写,顺序读写等等。可选值:read,write,randread,randwrite,rw,randrw。
  • bs: I/O block 大小,默认是 4k。测试顺序读写时可以调大。
  • size: 指定 job 处理的文件的大小。
  • numjobs: 指定 job 的克隆数(线程)。
  • time_based: 如果在 runtime 指定的时间还没到时文件就被读写完成,将继续重复知道 runtime 时间结束。
  • runtime: 指定在多少秒后停止进程。如果未指定该参数,fio 将执行至指定的文件读写完全完成。
  • group_reporting: 当同时指定了 numjobs 了时,输出结果按组显示。

如果是配置文件,配置文件属于 ini 格式的,即有区块概念,区块下通过“=”设置键值对。

4.2 在华为云云耀云服务器L实例运行 fio 测试

下面的说明是使用 fio 在华为云云耀云服务器L实例上进行测试,因为篇幅有限,下面只举例(图片)顺序读 IOPS。

在这里插入图片描述

  • bw:磁盘的吞吐量,这个是顺序读写考察的重点
  • iops:磁盘的每秒读写次数,这个是随机读写考察的重点

在上述测试过程中,顺序读测试结果的 吞吐量 BW 是104MB/s

4.3 友商的轻量应用服务器 lighthouse 运行 fio 测试

在友商的轻量应用服务器 lighthouse 运行 fio 测试
在上述 4.2 节中,华为云云耀云服务器L实例上运行 fio 测试步骤里已经详细介绍如何使用 fio 以及相关的细节介绍,这里节约篇幅省略中间过程,直接给出在友商的轻量应用服务器 lighthouse 运行 fio 的结果:

以执行顺序读为例:

在这里插入图片描述

五、最终测试比对结果

这里和之前使用 Geekbench、STREAM测试的时候一样,废话不多,直接上 fio 的最终结果:

fio 硬盘读写性能测试顺序读(MB/s)顺序写(MB/s)随机读(IOPS)随机写(IOPS)
华为云云耀云服务器L实例10490.951015122
友商的轻量应用服务器 lighthouse23.723.660506064

从上表中可以看出,同样是测试文件大小 1G 的情况下,华为云云耀云服务器L实例的顺序读与顺序写的速度要远高于友商轻量级应用服务器,但是在随机读与随机写的测试中,友商轻量级应用服务器的 IOPS 要略高于华为云云耀云服务器L实例,但是相差没有顺序读写那么夸张。

这也就说明,如果你是读写大文件,那么华为云云耀云服务器L实例的速度会远高于友商产品,而数据库或者应用在华为云云耀云服务器L实例上速率略低于友商竞品。

六、文末总结

在本文中,我们对被评测服务器的硬盘 I/O 性能进行了全面的评测和比对。在本文的重点部分,我们使用 fio 工具来测试这两款服务器的硬盘读取 I/O 性能。我们介绍了 fio 工具的安装过程、使用方法与相关详细运行参数报告进行了详细说明。并分别在两种服务器上运行了 fio 测试,以深入评估它们的在硬盘上的 I/O 性能。

过本文的评测和比对,可以帮助读者更好地了解这两款服务器的内存性能表现,为他们做出明智的决策提供有价值的信息。无论是在企业环境还是个人应用中,优化内存性能都是提高整体系统性能的关键一步。

[ 本文作者 ]   bluetata
[ 原文链接 ]   https://bluetata.blog.csdn.net/article/details/132954789
[ 最后更新 ]   09/18/2023 1:45
[ 版权声明 ]   如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask数据库之SQLAlchemy--介绍--链接数据库

目录 SQLAlchemy介绍 SQLAlchemy连接数据库 SQLAlchemy介绍 数据库是一个网站的基础!!! 比如MySQL、MongoDB、SQLite、PostgreSQL等,这里我们以MySQL为例进行讲解。 SQLAlchemy是一个ORM框架 对象关系映射(英语&…

GoAccess实时分析Nginx日志

GoAccess 是一个基于终端的实时 Web 日志分析仪。用 C 语言编写,它是快速,互动的,并以优雅而直观的方式显示日志。它提供了各种 Web 日志文件的支持,包括 Apache,Nginx,Caddy,Amazon S3 和 Clou…

postman-pre-request-scripts使用

一、场景 二、定义模拟接口 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SaaS.Framework.DataTransfer; using System.Threading.Tasks;namespace SaaS.KDemo.Api.Controllers {[Route("api/[co…

Ubuntu上线一个JAVA环境微服务架构的系统

项目介绍 项目背景: 已经有一套系统,迁移部署到新服务器,并使用不同数据,相同框架,提供对应业务服务 单机测试,从裸机-系统安装-软件架构-部署-数据迁移-发版-上线,整体流程与思路分享,包含后端、数据,测试、网络、运维等相关事务。 项目目的: 部署并迁移系统,…

【QT】Qt的随身笔记(持续更新...)

目录 Qt 获取当前电脑桌面的路径Qt 获取当前程序运行路径Qt 创建新的文本文件txt,并写入内容如何向QPlainTextEdit 写入内容QTimerQMessageBox的使用QLatin1StringQLayoutC在c头文件中写#include类的头文件与直接写class加类名有何区别mutable关键字前向声明 QFontQ…

【数据结构】优先级队列(堆)

文章目录 💐1. 优先级队列1.1 概念 💐2.堆的概念及存储方式2.1 什么是堆2.2 为什么要用完全二叉树描述堆呢?2.3 为什么说堆是在完全二叉树的基础上进行的调整?2.4 使用数组还原完全二叉树 💐3. 堆的常用操作-模拟实现3…

OpenCV实现的F矩阵+RANSAC原理与实践

1 RANSAC 筛选 1.1 大致原理 Random sample consensus (RANSAC),即随机抽样一致性,其是一种用于估计模型参数的迭代方法,特别适用于处理包含离群点(outliers)的数据集 RANSAC 的主要思想是随机采样数据点&#xff0…

ExcelServer EXCEL服务器使用- 用户、角色权限配置

Excel文件服务器搭建 搭建Excel服务器 1、登录 默认 用户名 Admin 密码 3 2、角色管理 添加修改角色 角色配置在 系统管理->角色.fexm文件夹下 可以像修改excel文件一样 修改角色 3、用户管理 添加修改用户 用户的修改在 系统管理->用户.fexm 可以像excel一样编辑用户…

链式二叉树的实现及遍历(C语言版)

目录 1 基本概念 1.1 树的概念 1.2 二叉树的链式表示 1.2.1 "左孩子右兄弟"表示法 1.2.2 "左右子树"表示法 1.2.3 手动构建一棵树 2 树的遍历 2.1 前序遍历/先序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 2.4.1 算法思想 ​编辑 2.4.2 带头…

MongoDB基础详解

一、MongoDB概述 MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一…

【Linux学习】02Linux基础命令

Linux(B站黑马)学习笔记 01Linux初识与安装 02Linux基础命令 文章目录 Linux(B站黑马)学习笔记前言02Linux基础命令Linux的目录结构Linux命令入门ls命令 目录切换相关命令(cd/pwd)cd命令pwd命令 相对路径、绝对路径和特殊路径符创…

Seata流程源码梳理下篇-TC

我们上篇简单梳理了下TM、RM的一些流程(离现在过得挺久的了,这篇我们这篇来梳理下TC的内容。 TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器 定…

将本地项目上传至Github详解

目录 1 前言2 本地代码上传2.1 命令行方法2.2 图形界面法2.3 结果 1 前言 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub 。开发者常常将github作为代码管理平台,方便代码存储、版本…

基于SpringBoot的的师生健康信息管理系统

目录 前言 一、技术栈 二、系统功能介绍 管理员功能模块 学生功能模块 教师功能模块 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着移动应用技术的发展,越来越多的用户借助于移动手机、电脑完成生活中的事务,许多的传统行业也…

超级详细 SQL 优化大全

1、MySQL的基本架构 1)MySQL的基础架构图 左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右…

北工大汇编题——分支程序设计

题目要求 信息检素程序设计:在数据区,有9个不同的信息,编号 0-8,每个信息包括20 个字符。从键盘接收 0-8 之间的一个编号,然后再屏幕上显示出相应编号的信息内容,按“q”键退出 完整代码 DATAS SEGMENTn0…

Day 03 python学习笔记

位运算 基于二进制的运算(计算机的底层基于位运算) 计算机最小单位:bit (比特/位/二进制) 1byte(字节) 8bit ( 0000 0000) &:与 (全真为真,一假则…

项目开发过程中遇到了什么困难?

1.需求最初是什么样的? 2.如何挖掘的需求,挖掘后真实的需求是什么样的? 3.我们做了那些调查? 4.我们给出了那些方案,优缺点是什么? 5.根据实际情况,老板的期望,最终我们选择的什…

Leetcode 01-算法入门与数组-③数组排序

LeetCode 01-算法入门与数组-③数组排序 一. 冒泡排序 1. 冒泡排序算法思想 冒泡排序(Bubble Sort)基本思想: 经过多次迭代,通过相邻元素之间的比较与交换,使值较小的元素逐步从后面移到前面,值较大的元素…

SAP PO运维(一):系统概览异常处理

打开SAP PIPO Netweaver Administration界面,系统概览下显示异常: 参考SAP note: 2577844 - AS Java Monitoring and Logging parametrization best practice service/protectedwebmethods = SDEFAULT -GetVersionInfo -GetAccessPointList -ListLogFiles -ReadLogFile -Para…