优化Linux系统服务器硬盘实用技巧

来源:岁月联盟 编辑:zhuzhu 时间:2006-10-30
优化Linux系统服务器硬盘实用技巧内容简介:引 :在Windows 系统 中,磁盘碎片是一个常见的问题,如果不注意, 系统 性能可能被侵蚀。Linux使用第二扩展文件 系统 (ext2),它以一种完全不同的方式处理文件存储。Linux没有Windows 系统 中发现的那种问题,这使  :在Windows中,磁盘碎片是一个常见的问题,如果不注意,性能可能被侵蚀。Linux使用第二扩展文件(ext2),它以一种完全不同的方式处理文件存储。Linux没有Windows中发现的那种问题,这使得许多人认为磁盘碎片化根本不是一个问题。

  在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速度。

 :在Windows中,磁盘碎片是一个常见的问题,如果不注意,性能可能被侵蚀。Linux使用第二扩展文件(ext2),它以一种完全不同的方式处理文件存储。Linux没有Windows中发现的那种问题,这使得许多人认为磁盘碎片化根本不是一个问题。

  在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速度。

 六、使用软件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倍;自由内存不能小于最小空白页数。 ww.()

  如果空白页数目低于空白页高设置,则交换(使用磁盘空间分配到交换文件)开始。当达到空白页低设置时,密集型交换开始。

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

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

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