资讯详情

集群磁盘瓶颈排查思路

背景描述

需求的出发点是从Hbase和Hdfs开始优化。影响性能的重要参数基本调整。测试工具主要用于YCSB和Hadoop自带的TestDfsIO测量两种服务的吞吐量和每秒传输量。如何调整吞吐量和每秒读写参数是无法上升的。

问题发现

所以开始怀疑网络IO和磁盘IO这个有瓶颈吗?nload测网络IO,带宽没有占满,测试数据的传输量就足够了。FIO测磁盘IO。总共有7个节点,结果出现了问题。每个节点的随机读写和顺序读写性能参差不齐。网上有很多使用方法和参数分析,不讲。

解决过程

开始了解磁盘的一些参数。主要是调整/sys/block/sd*|vd*/queue本目录中的参数以文件的形式存在。 主要调 read_ahead_kb 和 nr_requests 预读和IO队列。反复修改反复压力测量,找到平衡值。 一般/sys 这个目录没有写入权限,需要先授权,

bash chmod u w /sys

另外 read_ahead_kb 需要 blockdev 来设置。 例如 :blockdev --setra 8192 /dev/sda 设置值是文件值的两倍,这里设置8192,4096将显示在文件中。 nr_requests 修改简单,用 echo 数值 > nr_requests 可以,默认为128.可适当改进。

总结

在一个集群中,当调整参数不能再提高性能时,应考虑硬件层面是否存在瓶颈。就像网络一样IO运行任务,查看传输量,然后测量带宽,如果每个计算占用的网络IO占用所有带宽,即网络IO达到瓶颈,继续测量磁盘,磁盘没有满,IO测试最好与所有计算分离,关闭服务,然后简单地测试磁盘。不要特别准确地测试几次,做一个平均的观察。目的是看看每个节点的读写性能是否在另一个水平线上,一个写入量是否达到100M,写入10M,会产生桶效应。因此,我们必须首先检查一个集群中每个节点之间的性能是否相似。我们必须首先优化低性能。当然,我们不能排除磁盘断路、碎片过多等问题。

  1. 测量每个磁盘的读写性能。
  2. 横向比较其他节点。
  3. 分析性能低下的节点。
  4. 如果是虚拟机,则必须查看宿主机的磁盘性能。宿主机本身的磁盘性能没有问题,但如果虚拟机有问题,我们必须从虚拟机的磁盘配置层面来看待问题。KVM,配置不当会造成性能损失。
  5. 磁盘是否坏了,是否有坏路,碎片是否占用过多。
  6. 无论是虚拟机参数还是系统内部参数,每次调整都要进行压力测量。一直调整到可接受的范围。

标签: 振动传感器setra

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台