扫一扫
关注微信公众号

从头开始对ubuntu进行优化(上)
2007-01-16   中国IT实验室

在安装Linux系统之初,就应该考虑怎样使linux系统得到最好的性能。linux本身也设计成可以良好扩展的形态,比如在Linux系统中,我们可以随心所欲地组织磁盘分区,有些朋友喜欢一个/,一个swap就搞定,其实这个不是非常科学的选择,本人在多次重装后,总结一些经验,与各位朋友分享,如果有不对的地方,请务必提出批评。

第一部分 仅有一张硬盘的电脑安装linux

我在论坛上的优化初步一文中提过,linux也是有磁盘碎片的,所以为了减少碎片,应将内容经常改变的目录放在单独的分区。一个优化的分区策略,可以很好地改进Linux系统的性能,减少磁盘碎片,提高磁盘I/O能力。从方便备份数据的角度考虑,因为很多备份工具对整个分区进行备份的效率很高,所以我们应将Linux系统的几个主要的目录作为单独的文件系统,为它们各自分配一个区。
这里简单介绍下,几个重要的目录,这几个目录在ubuntu安装的硬盘分区时,可选择性的特别分区,进行挂载。
/usr 文件系统中一般不改变的文件,如库,程序。
/var 文件系统包含会改变的文件。
/home 文件系统包含用户家目录,即系统上的所有实际数据。
/tmp 临时文件。
/usr/local 这是提供给一般用户的/usr目录,在这安装软件最适合。
/srv 一些服务起动以后,需要的数据放在这里。
/opt 一些大型程序,安装在这里,方便管理。
/ 根目录,没啥说的。
我的建议是以上所有目录都单独在硬盘上分区,如果要问为什么,我可以举个例子。
比如LumaQQ,这个软件,我们可以把他安装在/opt下面,这样我们如果需要重新安装系统的话,可以选择不格式化/opt,并且把~/.lumaqq 这个文件夹备份下,这样当我们重新装好系统,再次把/opt挂载好,只需要把.lumaqq这个文件夹放在~下,配置好java,运行一个命令:
代码:
sudo ln -s /opt/LumaQQ/lumaqq /usr/bin/lumaqq

就可以再次使用lumaqq了,而且聊天记录等一系列lumaqq相关的设置都不会消失,避免了下载的麻烦,也少了安装的麻烦。
从磁盘碎片的角度上来讲,/tmp、/var和/home都是活动最频繁的分区了,如果我们把它们直接放在根目录下必然引起处理的麻烦,到时候有了磁盘碎片影响整个磁盘的性能。
因此,我推荐把以上的目录全部单独分区,单独挂载。
在分区的时候也是有一定的机巧的,根据磁盘的特点,我们知道越是靠磁盘外部的柱面,旋转越快,而且每次旋转时,磁盘读写头可以覆盖较多的区域,也就意味着靠外部的柱面可以得到较好的性能。所以在分区时,我们应该考虑将访问频率高的,对系统性能影响相对较大的分区置于磁盘的靠外部分。最好的方案从外到内应该是:
/boot->swap->/home->/var->/tmp->/srv->/opt->/usr->/usr/local->/
当然,也完全没必要死守这个规则而对硬盘进行大规模的修改,可以根据目前已有的分区进行调整。
另外要说的是,分完以上的区后,千万别把所有空间都用上,应该留下几个空的分区作为备份用,比如本人的硬盘最后的分区是一个高达30g的备份分区,上面储存了我上网下载的各种文件,自己作的某些东西,而且除了这个分区以外,我还有一个10g大的分区,并没有储存任何东西,仅仅是为了整理磁盘碎片用。

第二部分 有多张硬盘的电脑安装linux

这里我们主要采取的方法就是RAID。
首先最好的情况下是使用硬件RAID,性能最强,而且也没有任何复杂的部分,只要在主板的bios上设置好了,那么一切ok。
在不得已而求其次的状况下,我们使用软件RAID,那么我们最好有两个或者更多一样大的硬盘分区,硬盘的转速、缓存等性能也最好相同,这样的话,我们就可以得到软件RAID的最佳性能。
具体的方法,这里只介绍安装时的部分,在硬盘分区的时候划分两个或多个一样大的分区,文件格式选择为RAID。然后选择软件RAID设置,创建MD设备,然后在创建好的MD设备上进行新的分区,原则同第一部分。
当然在现实中,很可能我们的硬件并没有提供我们可以施展RAID的环境,这个时候我们还有最后的方法,就是swap这个分区,我们知道虚拟内存是很重要的,因此我们可以在两块硬盘上分别划出swap区,然后使用让他们优先级相同的技巧增强系统性能。
在/etc/fstab这个文件中,写有swap分区的那一行,options的部分这样写:
代码:
sw,pri=5

这样可以使两个swap同时运行,对系统性能应当有所补益。

第三部分 对于IDE硬盘的安装后优化

这里主要谈谈谈关于hdparm的使用,hdparm的某些功能可以通过编译内核来完成,在论坛上jaquar00是这样说的,当然我觉得使用这个软件更加方便,具体的使用方法如下:
首先进行测试:
代码:
sudo hdparm -tT 设备(一般是/dev/hda如果有两块硬盘第二块就是/dev/hdab)

然后进行设置:
代码:

sudo hdparm [-icdmXTt]
-i 这个参数 提供一些信息是由系统的驱动程序判断出硬盘的性能而得出的
它不一定准确,但是能为我们提供一点帮助。
-c 设定 32-bit 存取模式。这个 32-bit 存取模式指的是在硬件于pc界面 之间的传输模式,而影碟本是依照 16-bit 在运转
-d 设定是否启用DMA模式 -d1 启动 -d0 关闭
-m 设定同步读取多个 sector 的模式。一般来说,设定此模式,可降低因为 读取磁碟而损失的效能,16/32为最佳化,具体数字请根据 -i 得出的 信息中MaxMultSect来设定。
-X 设定 UtraDMA 的模式。一般来说,UDMA 的模式值加64就可以了。但是现 在的电脑普遍性能强劲,在这里请参考自己的电脑配置。
33 MHz DMA mode 0~2 (X64~X66)
66 MHz DMA mode 3~4 (X67~X68)
100 MHz DMA mode 5 (X69)
如果你的硬盘上面显示的UATA 100以上的,那么 X69 也许不错
-T 测试暂存区的存取效能。
-t 测试影碟实际的存取效能。

看清以上参数后,设置的具体方法我用例子说明,在我的电脑上我是这样作的:
代码:
sudo hdparm -X69 -d1 -u1 -m16 -c3 /dev/hda

完成后,再次测试。最后如果效果有所提升,那么就使用一下命令进行保存:
代码:
sudo hdparm -k1 设备

论坛上的jaquar00朋友,帮我补充了用
代码:
lspci -v | grep 'IDE'


这条命令查询你的硬盘支持那种方式,但是非常奇怪,该命令在我的电脑上什么都看不出来,全是unknow,不过也许对其他朋友能有所帮助。

热词搜索:

上一篇:可管理交换机虚拟局域网的几种划分
下一篇:让用户遵守安全策略的10个方法

分享到: 收藏