设置HPA提高intel MLC SSD硬盘的写性能
来源:互联网 发布:mac tmp文件夹 编辑:程序博客网 时间:2024/05/17 06:40
我们知道intel MLC SSD硬盘随着使用会产生很碎片,随着碎片的增加性能会大大降低。intel的工程师介绍可以使用HPA技术保留一部分空间给SSD硬盘内部使用,这样可以有效的降低碎片。
先介绍一下什么是HPA:
HPA是"host protected area"的缩写,通俗的理解就是设置读取的硬盘最大的扇区号,从而把高端的内容隐藏起来,这个最大的扇区号能够写在硬盘的某个地方,因此即使你把这个硬盘挂到其它机器上,正常情况下你也看不到隐藏的内容,fdisk,pqmaigc之类的工具也把这个硬盘当做一个稍小容量的硬盘。HPA是ATA的标准,ATA-4就包含了HPA,这个标准需要在HDD的 Firmware支持的。
HPA是"host protected area"的缩写,通俗的理解就是设置读取的硬盘最大的扇区号,从而把高端的内容隐藏起来,这个最大的扇区号能够写在硬盘的某个地方,因此即使你把这个硬盘挂到其它机器上,正常情况下你也看不到隐藏的内容,fdisk,pqmaigc之类的工具也把这个硬盘当做一个稍小容量的硬盘。HPA是ATA的标准,ATA-4就包含了HPA,这个标准需要在HDD的 Firmware支持的。
在Linux下使用新版本的hdparm工具可以设置HPA,Rhel5.X下自带的hdparm工具版本太低了,不能设置HPA。可以从sourceforge网站上下载hdparm工具:http://sourceforge.net/projects/hdparm/,我下载的版本是hdparm-9.27.tar.gz,下载后放在/usr/src目录下:
#cd /usr/src
#tar zxvf hdparm-9.27.tar.gz
#cd hdparm-9.27
#make
#make install
这样就安装好了新版本的hdparm,
检查hdparm的版本是否是新版本:
#hdparm -V
hdparm v9.27
hdparm v9.27
注意设置HPA会导致硬盘上原先的数据被破坏。
查看HPA的设置:
#hdparm -N /dev/sdh
/dev/sdh:
max sectors = 312581808/312581808, HPA is disabled
max sectors = 312581808/312581808, HPA is disabled
可以看到HPA是关闭的。
设置HPA,160G的SSD盘按2^30bytes/GB的话,大小为149GB,我们的的硬盘大小设置为120GB,留29GB给内部使用。
注意:设置HPA时必须保证硬盘没有被使用,同时设置完HPA后需要重新启动机器才能生效。如果设置完后,又需要重新设置HPA,需要把硬盘断电后,再设置,否能可能会设置失败。
#hdparm -N p251658240 /dev/sdh
/dev/sdh:
setting max visible sectors to 251658240 (permanent)
Use of -Nnnnnn is VERY DANGEROUS.
You have requested reducing the apparent size of the drive.
This is a BAD idea, and can easily destroy all of the drive's contents.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.
setting max visible sectors to 251658240 (permanent)
Use of -Nnnnnn is VERY DANGEROUS.
You have requested reducing the apparent size of the drive.
This is a BAD idea, and can easily destroy all of the drive's contents.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.
由于这个操作是会导致盘上的数据全部丢失,所以hdparm会警告你,需要加 --yes-i-know-what-i-am-doing ,才会真正设置HPA。
#hdparm -N p251658240 --yes-i-know-what-i-am-doing /dev/sdh
命令中的pNNNNNNN中的P表明是持久化设置。
重新启动Linux。
检查设置是否成功:
#hdparm -N /dev/sdh
/dev/sdh:
max sectors = 251658240/312581808, HPA is enabled
max sectors = 251658240/312581808, HPA is enabled
#blockdev --getsize /dev/sdh
251658240
251658240
blockdev返回的大小应是设置后的大小。
我测试的160G的intel MLC SSD硬盘的型号为SSDSA2M160,firmware版本为: 02G9,通过设置HPA后,对硬盘进行十几个小时后的8k大小的随机写后得到的硬盘的写IOPS如下:
硬盘的大小 149G 140G 130G 120G 110G 100G 90G硬盘的写IOPS 310 350 850 2400 2700 3050 4100
注:上表中的容量G是按2^30次方为1G,所以160G的硬盘,实际上是149G大小。
- 设置HPA提高intel MLC SSD硬盘的写性能
- 深入解析SSD中MLC与SLC的性能差异
- intel ssd flash硬盘。
- 使用hdparm命令发送ATA“Secure Erase”指令恢复SSD硬盘的写性能
- slc mlc tlc 的 ssd 的区别
- SCM+MLC/TLC NAND混合SSD性能探究
- Intel SSD硬盘 FW 更新方法
- SSD硬盘性能测试比较
- 基于SSD固态硬盘的数据库性能优化
- 基于SSD固态硬盘的数据库性能优化
- 基于SSD固态硬盘的数据库性能优化
- SSD硬盘的一些想法
- ssd的写放大
- ActiveMQ的kahadb写入消息性能测试(包括SSD硬盘)
- 使用facebook flashcache + ssd硬盘提升glusterfs的小文件读写性能
- SSD硬盘
- SSD中没有efi分区的解决办法即固态硬盘不能设置uefi引导的解决办法
- 提高HBase写性能
- Eclipse中,控制每行最大长度的提示线。
- 柴静的演讲:我们的明天会更好吗?
- 使用hdparm命令发送ATA“Secure Erase”指令恢复SSD硬盘的写性能
- 嵌入式软件基础
- 图形图像处理-之-高质量的快速的图像缩放 中篇 二次线性插值和三次卷积插值
- 设置HPA提高intel MLC SSD硬盘的写性能
- 关于不确定参数的存储过程
- WinAutoHide – 让窗口贴边隐藏
- Android学习笔记一
- 如何做好需求分析-精髓
- 放出AutoHotkey.dll的调用方法,喜欢做自己的AHK可以看看
- 在Evolution中设置gmail和126邮箱
- 委托之一
- VFP+SQL2000 数据库多用户登录界面