免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2116 | 回复: 0

砸碎禁锢OpenBSD磁盘性能的枷锁,让OpenBSD提速50%↑ [复制链接]

论坛徽章:
0
发表于 2009-02-23 15:26 |显示全部楼层

[转自]http://bbs3.chinaunix.net/thread-1376291-1-1.html
    请大家在继续下面的系统调整前,先做个测试,测下自己系统目前的磁盘性能,再做调整,这样也好有个比较。
以OpenBSD 4.4为例。方法:
[color="#ff0000"]#export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.4/packages/i386/
#pkg_add blogbench
装好后执行:
[color="#ff0000"]#/usr/local/bin/blogbench -d /var/mysql -c 30 -i 30 -r 30 -w 30 -W 30 -s 30
这个程序会在/var/mysql目录下进行读写的操作,可以看到进度,完成后会给个分数,如下图:

测试完成后请删除/var/mysql目录下的垃圾文件。
接下来,就要开始对系统进行调整了,调整前,请把现在用的内核做个备份。
[color="#ff0000"]#cp /bsd /bsd.old
这样,即便调整错误,系统无法启动,也只需用/bsd.old覆盖即可。
下面就是详细的步骤,只需简单四步,把你的磁盘提速至少50%!!!
一、/etc/fstab调优
[color="#ff0000"]#vi /etc/fstab
在文件系统描述符部分,加入“softdep”。示例如下:
[color="#0000ff"]/dev/wd0a / ffs rw,softdep 1 1
/dev/wd0l /home ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0d /tmp ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0e /usr ffs rw,nodev,softdep 1 2
/dev/wd0f /usr/local ffs rw,nodev,softdep 1 2
/dev/wd0g /var ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0i /var/log ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0j /var/mail ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0h /var/mysql ffs rw,nodev,nosuid,softdep 1 2
/dev/wd0k /var/nginx ffs rw,nodev,nosuid,softdep 1 2
[color="#000000"]
改完后保存退出,[color="#000000"]reboot[color="#000000"],看能不能正常启动。
一般情况下是没有问题的,个别机器或虚拟机可能会因为兼容性的缘故,无法启动。那么就把根目录的softdep拿掉,其他目录的softdep保留,仍然会有作用。
二、sysctl.conf调优
很简单:
[color="#ff0000"]#vi /etc/sysctl.conf[color="#000000"]
跳到最后,加入下面的内容:
[color="#0000ff"]kern.maxvnodes=65536
kern.maxproc=65536
kern.maxfiles=65536
[color="#000000"]
[color="#ff00ff"]注意:虚拟机测试只加最上面一行kern.maxvnodes=65536即可,其他两行不必加了,否则会有各种问题。独立机器的可以加上。[color="#000000"]
保存退出,reboot。不能正常启动的就把后两行的数字调小或者禁用再试。
三、atactl打开硬盘高级功能
首先声明下,如果你是用SCSI硬盘或是SATA接口的硬盘,又或者你有硬件的RAID,那么可以飘过本文的第三和第四部分。
[color="#0000ff"]本部分仅针对IDE接口的硬盘。[color="#000000"]
开始之前,请检查下你机器的硬件连接情况,确保硬盘和光驱不要用同一根线连到主板上的同一个IDE插槽!并且,硬盘线应该是80线的那种。
在命令行下输入下面的几个命令,打开硬盘控制器的高级功能:[color="#0000ff"]
[color="#000000"]
[color="#ff0000"]#atactl /dev/wd0c writecacheenable[color="#000000"]
启用写入缓存。
[color="#ff0000"]#atactl /dev/wd0c readaheadenable[color="#000000"]
启用预读取。
[color="#ff0000"]#atactl /dev/wd0c acousticset 126[color="#000000"]
设置为性能最大化模式,可选值:0~126。
[color="#000000"]
[color="#0000ff"]这个要解释下。某些硬盘有所谓的性能模式和静音模式,性能模式下硬盘转速最快,传输率最高;静音模式下么,转速最低,性能最差。
上面这句就是强制这样的硬盘工作于最大性能模式,获得最大的性能提升。[color="#000000"]
[color="#ff00ff"]注意:一般情况下,上面几句运行都应该没有问题的,不会出现错误提示。如果没有错误提示,那么就可以把上面几句都加入到/etc/rc.local文件的最前面,让系统启动的时候自动运行,省去手动启动的麻烦。深入了解atactl的用法请输入:man atactl。[color="#000000"]
四、驱动参数修改(wd)
[color="#0000ff"]本部分仅针对IDE接口的硬盘。[color="#000000"]
[color="#ff0000"]#config -e -o /bsd.new /bsd[color="#000000"]
修改wd驱动的flags,具体需要输入的内容请看下图,需要手动输入的内容用红线表示出来了,请仔细看!

[color="#0000ff"]
[color="#000000"]
上面的修改主要是[color="#ff00ff"]flags[color="#000000"]部分,原来是[color="#0000ff"]0x0[color="#000000"],改成[color="#ff0000"]0xdef[color="#000000"]
保存退出后,用/bsd.new内核启动下试试,如果没有问题就执行:
[color="#ff0000"]#mv /bsd.new /bsd[color="#000000"]
如果启动有问题,就在上面输入flags的时候减小输入的数值再试:[color="#ff00ff"]0xdee[color="#000000"]、[color="#ff00ff"]0xcee[color="#000000"]、[color="#ff00ff"]0xbee[color="#000000"]等。深入了解请输入:[color="#0000ff"]man wd [color="#000000"]查阅。
==============================
好了,该调整的都调整完了,可以再用 [color="#0000ff"]blogbench [color="#000000"]来测试磁盘性能了,下面是偶调整后的成绩:

[color="#0000ff"]
[color="#000000"]可以看到,读和写都有了很大的提升,至少50%以上,效果非常显著!
PS.偶是虚拟机测试,受到宿主系统的影响,读性能成绩显示有BUG。独立机器感觉会更明显!
欢迎大家进行调整测试,有什么问题请及时跟帖,让我们大家的OpenBSD都飞起来!
本文涉及的有关内容可以用man查阅,主要有wd、pciide、sd、ahci,想深入了解的朋友可以自行分析。[color="#0000ff"]



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11818/showart_1839917.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP