广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3195 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
sanson7337
数位造型
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Linux] 优化 Linux 系统硬碟
[sell=0] 在Windows系统中,磁碟碎片是一个常见的问题,如果不注意,系统性能可能被侵蚀。Linux使用第二扩展档系统(ext2),它以一种完全不同的方式处理档存储。 Linux没有Windows系统中发现的那种问题,这使得许多人认为磁碟碎片化根本不是一个问题。但是,这是不正确的。

  所有的档系统随着时间的推移都趋向于碎片化。Linux档系统减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的伺服器中,随着时间的过去,档碎片化将降低硬碟性能,硬碟性能只有从硬碟读出或写入资料时才能注意到。下面是优化Linux系统硬碟性能的一些具体措施。

清理磁碟

  这种方法看上去很简单:清理磁碟机,删除不需要的档,清除所有需要被保存但将不被使用的档。如果可能的话,清除多余的目录,并减少子目录的数目。这些建议似乎显而易见,但是你会惊讶地发现,每个磁碟上确实积累了非常多的垃圾。释放磁碟空间可以帮助系统更好地工作。

整理磁碟碎片

  Linux系统上的磁碟碎片整理程式与Windows 98或Windows NT系统中的磁碟碎片整理程式不同。Windows 98引入FAT 32档系统,虽然运行Windows 98不必转换为FAT 32档系统。Windows可以被设置为使用FAT或一个叫NTFS的增强档系统。所有这些档系统以本质上相同的方式处理档存储。

  Linux最好的整理磁碟碎片的方法是做一个完全的备份,重新格式化分区,然后从备份恢复档。当档被存储时,它们将被写到连续的块中,它们不会碎片化。这是一个大工作,可能对于像/usr之类不经常改变的程式分区是不必要的,但是它可以在一个多用户系统的/home分区产生奇迹。它所花费的时间与 Windows NT伺服器磁碟碎片整理花费的时间大致上相同。

  如果硬碟性能仍不令人满意,还有许多其他的步骤可以考虑,但是任何包含升级或购买新设备的硬体解决方案可能会是昂贵的。

从IDE升级到SCSI

  如果你的硬碟是一个IDE驱动器,可以通过升级到SCSI驱动器获得更好的整体性能。因为IDE控制器必须访问CPU,CPU和磁碟密集型操作可能变得非常缓慢。SCSI控制器不用通过CPU处理读写。当IDE驱动器在读或写时,用户可能会因为CPU周期被IDE驱动器占用而抱怨系统的缓慢。

获取更快的控制器和磁碟机

  标准的SCSI控制器不能比标准的IDE控制器更快地读写资料,但是一些非常快的“UltraWide”SCSI控制器能够使读写速度有一个真正的飞跃。

  EIDE和UDMA控制器是非常快的IDE控制器。新的UDMA控制器能够接近SCSI控制器的速度。UDMA控制器的顶级速度是猝发速度,但持续传输的速度明显慢得多。IDE控制器包括UDMA,是嵌入在驱动器本身中的。不需要购买一个控制器,只要购买一个驱动器,它就包含了控制器,可以获得UDMA 性能。

  磁碟机经常忽视的一个方面是磁碟本身的速度。磁碟的速度以rpm为单位给出,它代表每分钟旋转多少次。rpm越大,磁碟速度也越快。如果你有这方面的预算,大多数伺服器系统厂商可提供7500rpm甚至10000rpm SCSI磁碟。标准SCSI和IDE磁碟提供5400rpm速度。

使用多个控制器

  IDE和SCSI磁碟可以被链结。IDE链最多包括两个设备,标准SCSI链最多包括七个设备。如果在系统中有两个或更多SCSI磁碟,很可能被链结到同一个控制器。这样对大多数操作是足够的,尤其是把电脑当作单用户的工作站时。但是如果有一个伺服器,那么就能够通过对每个SCSI驱动器提供一个控制器改善性能。当然,好的控制器是昂贵的。

调整硬碟参数

  使用hdparm工具可以调整IDE硬碟性能,它设计时专门考虑了使用UDMA驱动器。在缺省情况下,Linux使用是最安全的,但是设置访问IDE驱动器是最慢的。缺省模式没有利用UDMA可能的最快的性能。  使用hdparm工具,通过启动下面的特性可以显着地改善性能:

  ◆ 32位支援 缺省设置是16位;

  ◆ 多部分访问 缺省设置是每次中断单部分传送。

  注意:在使用hdparm之前,确保对系统已经做了完全的备份。使用hdparm改变IDE参数,如果出错可能会引起驱动器上全部资料的丢失。

  hdparm可以提供关于硬碟的大量资讯。打开一个终端视窗,输入下面命令获取系统中第一个IDE驱动器的资讯(改变设备名获取其他IDE驱动器的资讯):

  hdparm -v /dev/had

  上面命令显示出当系统启动时从驱动器获得的资讯,包括驱动器操作在16位元或32位元模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁碟机的更详细资讯的显示可使用-i参数。  Hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个IDE驱动器:

  hdparm -Tt /dev/hda

  此测试可测量驱动器直接读和高速缓冲记忆体读的速度。结果是一个优化的“最好的事例”数位。改变驱动器设置,启动32位传输,输入下面的命令:

  hdparm -c3 /dev/hda

  -c3参数启动32位支援,使用-c0可以取消它。-c1参数也可启动32位支援并使用更少的记忆体开销,但是在很多驱动器下它不工作。  大多数新IDE驱动器支援多部分传输,但是Linux缺省设置为单部分传输。注意:这个设置在一些驱动器上,启动多部分传输能引起档系统的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令启动多部分传输:

  hdparm -m16 /dev/hda

  -m16参数启动16部分传输。除了西部资料的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部资料的驱动器缓冲区小,当设置大于8部分时性能将显着下降。对西部资料驱动器来说,设置为4部分是最合适的。

  启动多部分访问能够减少CPU负载30%~50%,同时可以增加资料传输速率到50%。使用-m0参数可以取消多部分传输。

  hdparm还有许多选项可设置硬碟驱动器,在此不详述。

使用软体RAID

  RAID廉价驱动器的冗余阵列,也可以改善磁碟机性能和容量。Linux支援软体RAID和硬体RAID。软体RAID嵌入在Linux内核中,比硬体 RAID花费要少得多。软体RAID的惟一花费就是购买系统中的磁碟,但是软体RAID不能使硬体RAID的性能增强。硬体RAID使用特殊设计的硬体,控制系统的多个磁碟。硬体RAID可能是昂贵的,但是得到的性能改善与之相匹配。RAID的基本思想是组合多个小的、廉价的磁碟机成为一个磁碟机阵列,提供与大型电脑中单个大驱动器相同的性能级别。RAID驱动器阵列对于电脑来说像单独一个驱动器,它也可以使用并行处理。磁碟读写在RAID磁碟阵列的并行资料通路上同时进行。

  IBM公司在加利福尼亚大学发起一项研究,得到RAID级别的一个最初定义。现在有六个已定义的RAID级别,如下所示。

  RAID 0:级别0只是资料带。在级别0中,资料被拆分到多于一个的驱动器,结果是更高的资料吞吐量。这是RAID的最快和最有效形式。但是,在这个级别没有资料镜像,所以在阵列中任何磁碟的失败将引起所有资料的丢失。

  RAID 1:级别1是完全磁碟镜像。在独立的磁碟上创建和支援资料两份拷贝。级别1阵列与一个驱动器相比读速度快、写速度慢,但是如果任一个驱动器错误,不会有资料丢失。这是最昂贵的RAID级别,因为每个磁碟需要第二个磁碟做它的镜像。这个级别提供最好的资料安全。

  RAID 2:级别2设想用于没有内嵌错误检测的驱动器。因为所有的SCSI驱动器支援内嵌错误检测,这个级别已过时,基本上没用了。Linux不使用这个级别。

  RAID 3:级别3是一个有奇偶校验磁碟的磁碟带。存储奇偶校验资讯到一个独立的驱动器上,允许恢复任何单个驱动器上的错误。Linux不支持这个级别。

  RAID 4:级别4是拥有一个奇偶校验磁碟的大块带。奇偶校验资讯意味着任何一个磁碟失败资料可以被恢复。级别4阵列的读性能非常好,写速度比较慢,因为奇偶校验资料必须每次更新。

  RAID 5:级别5与级别4相似,但是它将奇偶校验资讯分布到多个驱动器中。这样提高了磁碟写速度。它每百万位元组的花费与级别4相同,提高了高水准资料保护下的高速随机性能,是使用最广泛的RAID系统。

  软体RAID是级别0,它使多个硬碟看起来像一个磁碟,但是速度比任何单个磁碟快得多,因为驱动器被并行访问。软体RAID可以用IDE或SCSI控制器,也可以使用任何磁碟组合。配置内核参数通过调整系统内核参数改善性能有时是很明显的。如果你决定要这样做一定要小心,因为系统内核的改变可能优化系统,也可能引起系统崩溃。  注意:不要在一个正在使用的系统上改变内核参数,因为有系统崩溃的危险。因此,必须在一个没有人使用的系统上进行测试。设置一个测试机器,对系统进行测试,确保所有工作正常。 Tweak记忆体性能  在Linux中,可以Tweak系统记忆体。如果遇到记忆体不足错误或者系统是用于网路的,可以调整记忆体分配设置。

  记忆体一般以每页4千位元组分配。调整“空白页”设置,可以在性能上有显着的改善。打开终端视窗,输入下面的命令查看系统的当前设置:

  cat /proc/sys/vm/freepages

  这样将获得三个数字,就像下面这样:

  128 256 384

  这些是最小空白页、空白页低和空白页高设置。这些值在启动时决定。最小设置是系统中记忆体数量的两倍;低设置是记忆体数量的4倍;高设置是系统记忆体的 6倍;自由记忆体不能小于最小空白页数。  如果空白页数目低于空白页高设置,则交换(使用磁碟空间分配到交换档)开始。当达到空白页低设置时,密集型交换开始。

  增加空白页高设置有时可以改善整体性能,比如试试增加高设置到1MB,用echo命令可以调整这个设置。使用样本设置,输入这个命令增加空白页高设置到1MB:

  echo "128 256 1024" > /proc/sys/vm/freepages

  注意:当系统还没有被使用时测试这个设置,以确保在做任何调整时监视系统性能。这样可以确定哪个设置对系统是最好。


[ 此文章被andyz在2005-05-18 19:58重新编辑 ]




如果好的话 可以送花阿^^


你的回覆 是我最大的鼓励
献花 x0 回到顶端 [楼 主] From:台湾数位联合 | Posted:2005-02-10 00:05 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.088083 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言