首页 > 其他分享 >磁盘I/O性能监控的指标

磁盘I/O性能监控的指标

时间:2023-06-28 23:31:33浏览次数:31  
标签:队列 性能 监控 服务器 磁盘 数据 硬盘

服务器硬盘是磁盘资源中最慢的组件,在企业数据中心,注意仔细设计存储子系统,不要让它成为主要性能瓶颈,而最理想的办法是使用SAN,即使预算不允许,也要想办法确保磁盘资源争用不会导致虚拟机(VM)瘫痪。

首先应将宿主操作系统安装到专用硬盘上,注意不是专用卷,确保宿主操作系统不会与虚拟机抢夺磁盘资源。如果托管服务器可以连接外置存储,还可以考虑将宿主操作系统的分页文件移动到外置存储的专用驱动器上。

RAID阵列是满足虚拟服务器性能所必需的,至少应该选择使用RAID1,但“RAID1+RAID0”(RAID10)是更好的选择,因为它能提供容错,并且性能开销也比RAID5小。如果可以的话,给每个虚拟服务器分配一个专用磁盘阵列最好。

使用固定大小的虚拟硬盘来配置虚拟服务器会获得额外的性能提升。虽然动态扩展虚拟硬盘很方便,但对服务器的性能是有影响的。

磁盘I/O性能监控的指标主要包括以下七个。

1、每秒I/O数(IOPS或TPS)

对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘I/O,磁盘的IOPS就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。

2、吞吐量

吞吐量即硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为kbit/s、MB/s等。当传输大块不连续数据时,该指标有重要参考作用。

3、平均I/O数据尺寸

平均I/O数据尺寸为吞吐量除以I/O数目,该指标对揭示磁盘使用模式有重要意义。一般来说,如果平均I/O数据尺寸小于32KB,可认为磁盘使用模式以随机存取为主;如果平均每次I/O数据尺寸大于32KB,可认为磁盘使用模式以顺序存取为主。

4、磁盘活动时间百分比

磁盘处于活动时间的百分比即磁盘利用率,磁盘在数据传输和处理命令(如寻道)时处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能就越差,响应时间就越长。一般来说,如果磁盘利用率超过70%,应用进程将花费较长的时间等待I/O完成,因为绝大多数进程在等待过程中被阻塞或休眠。

5、服务时间

服务时间即磁盘读或写操作执行的时间,包括寻道、旋转时延和数据传输等时间。其大小一般与磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过20ms,一般认为会对上层应用产生影响。

6、I/O等待队列长度

I/O等待队列长度即待处理的I/O请求数目,如果I/O请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的I/O等待队列长度。

7、等待时间

等待时间指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果I/O请求持续超出磁盘处理能力,意味着来不及处理的I/O请求不得不在队列中等待较长时间。

通过监控以上指标,并将这些指标数值与历史数据、经验数据以及磁盘标称值对比,必要时结合CPU、内存、交换分区的使用状况,不难发现磁盘I/O潜在或已经出现的问题。但如何避免和解决这些问题呢?这就需要利用磁盘I/O性能优化方面的知识和技术了。限于篇幅,在这里仅列出一些常用的优化方法以供参考:

  • 调整数据布局,尽量将I/O请求较合理地分配到所有物理磁盘中。
  • 对于RAID磁盘阵列,尽量使应用程序I/O等于条带尺寸或者为条带尺寸的倍数。并选取合适的RAID方式,如RAID10、RAID5。
  • 增大磁盘驱动程序的队列深度,但不要超出磁盘的处理能力,否则部分I/O请求会因为丢失而重新发出,这将会降低性能。
  • 应用缓存技术减少应用存取磁盘的次数,缓存技术可应用在文件系统级别或者应用程序级别。
  • 由于大多数数据库中已包括经优化后的缓存技术,数据库I/O宜直接存取原始磁盘分区(raw partition)或者利用绕过文件系统缓存的DIO(Direct I/O)技术。
  • 利用内存读写带宽远比直接磁盘I/O操作性能优越的特点,将频繁访问的文件或数据置于内存中。

标签:队列,性能,监控,服务器,磁盘,数据,硬盘
From: https://blog.51cto.com/key3feng/6577358

相关文章

  • inotifywait 监控文件修改实时格式化文件
    我们在学习laravel过程中,从文档网页复制代码,会有一些比较麻烦的问题。以《Laravel10中文文档》|LaravelChina社区(learnku.com)为例 直接点复制按钮会带后,想测试的代码的话,还有处理use语句选中复制时,网站会向剪贴板追加来源信息,还得手动处理。 这些手动处理......
  • 重组您的 DTC 电子商务以获得数据中心的最佳性能
    DTC运营商下一阶段的关键在与如何构建基于数据中台的电商运营体系,进行多平台电商店铺的运营规划管理,构建多店铺的电商绩效看板和绩效分析体系,以及将现有的电商店铺平台运营能力沉淀到平台和模型中来。我们认为目前DTC运营商的关键点在于建立基于数据中台的电商运营体系,将......
  • 树莓派集群真的可以顶上一台高性能计算机吗?(扩展篇)
    之前写过文章:树莓派集群真的可以顶上一台高性能计算机吗讨论过树莓派集群是否可以比得上一台高性能计算机的问题,本篇这里是对前文的扩展。   ========================================================  之所以写了本篇扩展是因为无意中在网上发现了下文:https://a......
  • Spring 赌上未来一击,推出响应式框架 WebFlux,代码更优雅,性能更强!
    Spring-webflux简介spring-webflux是spring在5.0版本后提供的一套响应式编程风格的web开发框架,大量测评证明,使用WebFlux开发接口能够大幅提升接口的吞吐量。这个框架包含了spring-framework和springmvc,它可以运行在Netty、Undertow以及3.1版本以上的Serlvet容器上。你可以在项......
  • 分享一次性能测试过程,5个步骤直接起飞!
    在企业中完成性能测试项目是一个挑战性强、技术含量高的任务。本文将分享一个公司完成高性能游戏系统的性能测试过程,展示如何完成一次成功的性能测试项目。项目背景:这是一家游戏公司,推出了一款新的游戏软件,系统要求高性能、高并发、高可用,为确保用户体验和游戏体验,公司决定在正式......
  • 如何用Python搭建监控平台
    监控和运维,是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控,我们能够及时了解到企业网络的运行状态。一旦出现安全隐患,你就可以及时预警,或者是以其他方式通知运维人员,让运维监控人员有时间处理和解决隐患,避免影响业务系统的正常使用,将一切问题的根源扼杀在摇......
  • 性能测试理论、定位、分析总结
    一、理论1.1概念性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。1.2性能指标指标包括:时间指标、容量指标和资源利用率指标时间指标指......
  • 前端埋点、pv/uv统计、前端监控
    1.pv/uv统计pv:页面重复浏览量统计方式,多页面应用通常在页面load事件,单页应用通常在页面路由中uv:页面独立访客浏览量统计方式,pv统计的基础上,添加唯一标识,可以是IP地址,用户浏览器localStorage存储的uuid等。IP地址存在局域网内的共享一个ip、代理、动态ip等误差uuid存在......
  • QT性能优化实战 QML优化 QT高性能 QT6系列视频课程 QT6 性能优化实战 QT高性能 QT原理
      QT性能优化实战视频课程QT6Widgets高性能应用编程 1.课前考试2.字符串优化(上)3.字符串优化(下)4.绘图优化(上)5.绘图优化(下) 6.QT界面优化(上)7.QT界面优化(下)8.QT高性能统计图优化 9.QT高性能图形视图图元场景优化......
  • Android性能优化:微信自用高性能持久化框架——MMKV组件原理
    MMKVMMKV——基于mmap的高性能通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。githubMMKV是基于mmap内存映射的移动端通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。从2015年中至今,在iOS微信上使用已有近3年,其......