在服务器测试中,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

SSD性能调优的几种方法相关推荐

  1. 【会议记录】基于CPU性能调优的必要性和方法介绍

    前一段时间我参加了阅码场的活动 Yomoday(北京场),现场有很多技术专家,非常多前沿的技术分享.这是其中一个主题的记录,尽量还原当时的分享内容,但也可能有些地方不特别准确. 1 基于CPU性能调优 ...

  2. 数据库调优的几种方法

    转载自:http://www.myfreelinux.com/?p=538 1.引言         数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素.将数据均 匀分布在磁盘上可以提 ...

  3. 数据库性能调优的10个方法介绍

    MYSQL 应该是最流行了 WEB 后端数据库.WEB 开发语言最近发展很快,PHP, Ruby, Python, Java各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会 ...

  4. MySQL 性能调优的10个方法

    MYSQL 应该是最流行了 WEB 后端数据库.WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是 ...

  5. 应用性能调优分析与总结

    当出现用户抱怨网站太卡.软硬件需要升级.系统性能不佳等情况,程序员这时需要对系统进行性能调优,实现性能最大化,满足业务的最新需求. 1   为什么要性能调优? 应用上线前在性能上无法满足需求. 应用系 ...

  6. server sql top速度变慢解决方案_SQL Server的性能调优:解决查询速度慢的五种方法-数据库...

    编辑推荐: 本文主要通过一下几个方面介绍:使用SQL DMV查找慢速查询.通过APM解决方案查询报告.SQL Server扩展事件.SQL Azure查询性能洞察等相关内容. 本文来自博客园,由火龙果 ...

  7. 性能调优攻略:完整地讲述了一些代码级别的技术和方法

    关于性能优化这是一个比较大的话题,在<由12306.cn谈谈网站性能技术>中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别 ...

  8. linux mysql数据库优化_MySQL_Linux下MySQL数据库性能调优方法,以下的环境具备一定的代表性 - phpStudy...

    Linux下MySQL数据库性能调优方法 以下的环境具备一定的代表性,可以说是中小企业一般配置和工作环境.希望通过本文能让大家理解Linux下MySQL数据库性能调优方法. 硬件准备环境: 硬盘: 1 ...

  9. spark 算子例子_Spark性能调优方法

    公众号后台回复关键词:pyspark,获取本项目github地址. Spark程序可以快如闪电⚡️,也可以慢如蜗牛?. 它的性能取决于用户使用它的方式. 一般来说,如果有可能,用户应当尽可能多地使用S ...

最新文章

  1. Windows 8.1 Preview(Windows Blue)预览版简体中文官方下载(ISO完整版镜像)
  2. 支付宝员工求问谷歌亚马逊员工:如能六点下班,学好英语就去投奔
  3. 恶意代码实战Lab13-01分析
  4. 认识多渲染目标(Multiple Render Targets)技术 【转】
  5. [好消息]博客园期刊第二期发布
  6. Selenium2之Web自动化编写API(Java)
  7. Spring Boot JPA中java 8 的应用
  8. ***使用PHP实现文件上传和多文件上传
  9. 【软件质量】ISO-9126质量模型
  10. POJ 1850 Code
  11. Brave 浏览器将用户的onion地址泄漏给 DNS提供商
  12. Ubuntu 全部命令
  13. 读文献--《机器学习隐私保护研究综述》
  14. Ubuntu安装和显卡驱动安装
  15. linux百度文字识别,基于Linux平台的图片文字识别系统
  16. java理论笔试题_Java基础笔试题及答案
  17. 基于LabWindows/CVI学生管理系统的实现
  18. 关掉计算机usb接口,bios中不小心把电脑的USB接口给关闭了,怎么样开启
  19. 《京东话费充值系统架构演进实践》读后感
  20. 一路(16)有你,一起(17)前行

热门文章

  1. 遇到Parallels Desktop中 Win10 无法启动或一直在恢复等问题解决办法
  2. 基于Vue实现表格拖拽排序——sortablejs
  3. @font-face 网络字体的中文用法(一)
  4. 深度学习:2016年的进展综述及2017年的预测
  5. VBA+批处理实现WORD转EXCEL数据分析开发日志
  6. 对Android开发的现状和未来发展的思考,终局之战
  7. 神级编辑器 Vim 使用-正则替换篇
  8. 使用netoffice时出现一下问题处理方法
  9. 《DNS简介及如何修改来使用Bing搜索》
  10. Float保留一位小数,四舍五入