0
点赞
收藏
分享

微信扫一扫

服务器磁盘速度不达标的一次排查

千行 2024-03-13 阅读 12

前言

上架一批服务器部署ceph,部署过程中仅仅测试确保了内存、CPU之类的正常状态。当搭建完ceph之后测试性能,发现提供的rbd角色性能仅仅只有900MB/s的速度。


设备

某原生4M.2,原生4U.2的国内品牌成品服务器。此服务器一些奇怪的设定还是比较多的。首先切换到干净的系统排查,确保系统本身不受服务之类的影响。例如虽然处理器资源没有满载,但是对处理器L2 L3缓存资源占用较多的程序会严重的影响磁盘、网络IO之类的性能。


系统

pxe无盘启动了一个CentOS 7 minimal,运行过程中没有报错或者其他提示信息。


分析过程

4K性能之类的受限于处理器、磁盘本身,低队列深度没有发现问题,能够轻易的达到厂商标称性能,与网络上分享的案例性能接近,这里只有持续独写本身测试性能不足。

hdparm -t /dev/nvme0n1

测试结果,对特定的闪存设备直接访问,速度也不足900MB/s。

fio就不用测试了,基本上常见的硬盘,在10年内的普通计算机上以hdparm足以测试出最大读取速度。指定深队列,或者测试的块较大,就能够跑满硬盘带宽。因为设备已部署业务,因此注意——数据无价,谨慎操作。

虽然只是部署了业务系统,没有实际上线运营,但是重部署需要的时间也是非常大的。所以尽量不要做写入性的测试避免增加不必要的工作量。为了不影响业务系统,此处选择从网络启动一个系统也是这方面的考虑。

Linux操作系统与主流操作系统原理上是相似的,通过pxe引导通过tftp或者http之类的服务加载内核,然后挂载网络中的系统rootfs,系统就启动完成了与磁盘运行的操作系统是没有太大差异的。这个方式可以减少对业务系统的影响,同时无需物理访问计算机,通过远程即可管理。

先软后硬,首先观察pcie的状态是否正常。

设备安装了8个nvme闪存设备,速度都比较接近。磁盘设备性能不达标,比如直通卡、阵列卡下多个硬盘、nvme闪存盘的持续带宽不够,先考虑接口状态。

lspci命令观察设备位置。假设一个SN640 7.68T设备位于PCIE 04:00.0 的位置。

lspci -s 04:00.0 -vvvv | grep LnkSta

发现返回结果为8GT/s x4

检查了每个设备,有4个显示为2.5GT/s,4个显示为8GT/s

8个盘测试的最大连续读取速度都是不足1G。

当前系统没有运行任何程序,lspci的观察在业务系统也粗略的做过了。业务系统底层有一些三副本之类的任务,相对于直接访问磁盘,性能大概差异在1/8的样子。

显示速度都不同,但是性能接近,是否是目前计算机性能受限无法发挥呢?

通过lscpu cpupower /proc/cpuinfo之类的观察,发现目前处理器,主要是观察cpupower提示的性能状态,处于恒定最大性能模式,此模式性能“达不到最佳”,处理器只是工作在标称频率。

重启进入BIOS检查。

发现全部的PCIE在BIOS默认设置下是工作在PCIE 1.0状态的。而这款服务器在BMC之类的位置都没有体现这一现象,反而是显示PCIE 3.0 x4同时lspci查看到的信息给了误导。然后将系统的性能模式修改为os调度保存重启。

故障解决,问题的关键就在于此设备厂商默认将所有PCIE的速度默认设置为PCIE 1.0,也没有什么太多的选项,只可以选择1.0与MAX。在部署业务之前已经刷新了最新版本BIOS,还原了默认配置重新开始部署,所以应该是BIOS默认的设定逻辑就是这个状态。

另外特别是服务器的BIOS,不少选项是牵一发而动全身的,很多设置例如修改性能模式可能就会联动的去直接覆盖很多设定,比如这款服务器,在部署的过程中由于时间紧迫没有详细的测试,仅仅是简单的将性能模式修改为最大性能,结果连带着将PCIE速度锁定在了PCIE1.0模式。此时如果修改详细的设置,就会由性能调整预设选项的变更为custom,选项之间相互关联影响。


解决方法

修改性能为OS调度或者性能平衡模式。此时cpupower显示处理器的调度器为intel_pstate,在这个状态下处理器可以全核心睿频,全核心的频率均高于默认频率;在这个状态下,PCIE默认为max,8个PCIE 3.0设备读取速度均能够达到正常的大概2.8GB/s。

整个故障排除的过程主要就浪费在服务器漫长的启动自检时间了,虽然比较有经验,但是操作过程没有纸笔什么的配合难免有疏漏导致需要多重启一次。另外为了测试设备特性,比如性能电源管理这方面,后来又进行了几次测试,如果提前有足够的时间接触了解设备,那么正常使用过程中“坑”就知道如何避开了。


预告

下一篇排查CEPH RBD性能不达标的问题。存储交换机为某国产4XG与10XG组合的主流三层交换机,性能上不存在问题。计算通过4XG双光口连接至两台相同的交换机连接100G端口的存储节点。计算与存储均启用双网口接入两台相同的交换机实现冗余。存储节点每机柜4+1配置,4台1U的设备接入了8个SN640 7.68t,以及一个不挂载存储的节点同时加入ceph实现没什么必要的奇数节点。机柜之间也通过双100G环状组网,便于更高级别的存储空间弹性调度。单机柜大约4台8个7T得到224TB实际可用空间,在应用层面对关键性负载启用3副本,对于不太重要的、临时性的要求不高的不启用冗余或者双副本节约成本,最极端的情况下能提供接近75T的高性能全闪存储。



举报

相关推荐

0 条评论