SSD性能调优的几种方法

在服务器测试中,storage 的测试是很重要的一部分。在测试过程中,经常会遇到硬盘(一般指固态硬盘)的性能偏低的情况,这其中有环境因素,也有SSD本身的问题。下面我们介绍一下SSD性能调优的几种方法。
1 测试之前 最好格式化一下盘,或者安全擦除。这些会对SSD的性能有所影响,但影响不是很大。
2 设置CPU performance模式
查询:#cpupower -c all frequency-info
设置:#cpupower -c all frequency-set --governor performance
在这里插入图片描述
注:
红色框表示:CPU当前策略为performance(高性能)

3 锁定CPU最高频率
锁定每个CPU核心频率到最高频
设置:#cpupower -c all frequency-set –u 2.3G –d 2.3G
注:2.3G为CPU的主频
在这里插入图片描述

4 绑核(CPU Core)调优
一检查:检查硬盘的cable线如何连接CPU
二确认:确认硬盘从属于那颗CPU
三分析:分析硬盘所属CPU的物理core和虚拟core数量
四绑定:绑定对应的core给硬盘
在这里插入图片描述
在这里插入图片描述
5 绑中断(IRQ)调优
首先要了解中断的概念:
中断其实就是由硬件或软件所发送的一种称为IRQ(中断请求)的信号。
中断允许让设备,如键盘,串口卡,并口等设备表明它们需要CPU。
一旦CPU接收了中断请求,CPU就会暂时停止执行正在运行的程序,并且调用一个称为中断处理器或中断服务程序(interrupt service routine)的特定程序。

所有的linux操作系统都是基于中断驱动的。

当我们在键盘上按下一个按键时,键盘就会对CPU说,一个键已经被按下。在这种情况下,键盘的IRQ线路中的电压就会发生一次变化,而这种电压的变化就是来自设备的请求,就相当于说这个设备有一个请求需要处理。

/proc/interrupts 文件
在linux的机器上,/proc/interrupts这个文件包含有关于哪些中断正在使用和每个处理器各被中断了多少次的信息。

cat /proc/interrupts

       CPU0   CPU1  CPU2  CPU3

0: 3710374484 0 0 0 IO-APIC-edge timer
1: 20 0 0 0 IO-APIC-edge i8042
6: 5 0 0 0 IO-APIC-edge floppy
7: 0 0 0 0 IO-APIC-edge parport0
8: 0 0 0 0 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 240 0 0 0 IO-APIC-edge i8042
14: 11200026 0 0 0 IO-APIC-edge ide0
51: 61281329 0 0 0 IO-APIC-level ioc0
59: 1 0 0 0 IO-APIC-level vmci
67: 19386473 0 0 0 IO-APIC-level eth0
75: 94595340 0 0 0 IO-APIC-level eth1
NMI: 0 0 0 0
LOC: 3737150067 3737142382 3737145101 3737144204
ERR: 0
MIS: 0

对上面文件的输出,解释如下:

● 第一列表示IRQ号

● 第二、三、四列表示相应的CPU核心被中断的次数。在上面的例子中,timer表示中断名称(为系统时钟)。3710374484表示CPU0被中断了3710374484次。i8042表示控制键盘和鼠标的键盘控制器。

● 对于像rtc(real time clock)这样的中断,CPU是不会被中断的。因为RTC存在于电子设备中,是用于追踪时间的。

● NMI和LOC是系统所使用的驱动,用户无法访问和配置。

IRQ号决定了需要被CPU处理的优先级。IRQ号越小意味着优先级越高。

例如,如果CPU同时接收了来自键盘和系统时钟的中断,那么CPU首先会服务于系统时钟,因为他的IRQ号是 0 。

● IRQ0 :系统时钟(不能改变)

● IRQ1 :键盘控制器(不能改变)

● IRQ3 :串口2的串口控制器(如有串口4,则其也使用这个中断)

● IRQ4 :串口1的串口控制器(如有串口3,则其也使用这个中断)

● IRQ5 :并口2和3 或 声卡

● IRQ6 :软盘控制器

● IRQ7 : 并口1。它被用于打印机或若是没有打印机,可以用于任何的并口。

而对于像操作杆(或称为游戏手柄)上的CPU,它并不会等待设备发送中断。因为操作杆主要用于游戏,操作杆的移动必须非常快,因此使用轮询的方式检测设备是否需要CPU的关注还是比较理想的。使用轮询方式的缺点是CPU就处于了忙等状态,因为CPU会不停的多次检查设备。但是需要注意的是在linux中,这种处理信号的方式也是必不可少的。
4.2、绑中断方法

(适用Intel平台,AMD平台需OS Kernel支持,比如Tencent kernel)

测试开始前, stop系统的irqbalance服务
#systemctl stop irqbalance.service

抓取HDD/NVME/其它设备对应的中断号
#cat /proc/interrupts | grep -i nvme

将需要绑定的cpu core写到对应的中断号里
#echo CPU core > /proc/irq/HDD,NVME 对应的中断号/smp_affinity_list

测试结束后restart系统的irqbalance服务
#systemctl restart irqbalance.service

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值