瓶胆 發表於 2008-9-8 17:17:58

Linux系统硬盘的维护及优化

<p>所有的文件<a class="UBBWordLink" href="#" target="_blank">系统</a>随着时间的推移都趋向于碎片化。Linux文件<a class="UBBWordLink" href="#" target="_blank">系统</a>减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的<a class="UBBWordLink" href="#" target="_blank">服务</a>器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能只有从硬盘读出或写入数据时才能注意到。下面是优化Linux系统硬盘性能的一些具体措施。</p>
<p><strong>清理磁盘</strong></p>
<p>这种<a class="UBBWordLink" href="#" target="_blank">方法</a>看上去很简单:清理磁盘驱动器,删除不需要的文件,清除所有需要被保存但将不被使用的文件。如果可能的话,清除多余的目录,并减少子目录的数目。这些建议似乎显而易见,但是你会惊讶地发现,每个磁盘上确实积累了非常多的垃圾。释放磁盘空间可以帮助<a class="UBBWordLink" href="#" target="_blank">系统</a>更好地工作。</p>
<p><strong>整理磁盘碎片</strong></p>
<p>Linux系统上的磁盘碎片整理程序与Windows 98或Windows NT系统中的磁盘碎片整理程序不同。Windows 98引入FAT 32文件<a class="UBBWordLink" href="#" target="_blank">系统</a>,虽然运行Windows 98不必转换为FAT 32文件<a class="UBBWordLink" href="#" target="_blank">系统</a>。Windows可以被<a class="UBBWordLink" href="#" target="_blank">设置</a>为使用FAT或一个叫NTFS的增强文件<a class="UBBWordLink" href="#" target="_blank">系统</a>。所有这些文件<a class="UBBWordLink" href="#" target="_blank">系统</a>以本质上相同的方式处理文件存储。</p>
<p>Linux最好的整理磁盘碎片的<a class="UBBWordLink" href="#" target="_blank">方法</a>是做一个完全的备份,重新格式化分区,然后从备份恢复文件。当文件被存储时,它们将被写到连续的块中,它们不会碎片化。这是一个大工作,可能对于像/usr之类不经常改变的程序分区是不必要的,但是它可以在一个多用户<a class="UBBWordLink" href="#" target="_blank">系统</a>的/home分区产生奇迹。它所花费的时间与Windows NT服务器磁盘碎片整理花费的时间大致上相同。</p>
<p>如果硬盘性能仍不令人满意,还有许多其它的步骤可以考虑,但是任何包含升级或购买新设备的硬件<a class="UBBWordLink" href="#" target="_blank">解决</a>方案可能会是昂贵的。</p>
<p><strong>从IDE升级到SCSI</strong></p>
<p>如果你的硬盘是一个IDE驱动器,可以通过升级到SCSI驱动器获得更好的整体性能。因为IDE必须访问CPU,CPU和磁盘密集型<a class="UBBWordLink" href="#" target="_blank">操作</a>可能变得非常缓慢。SCSI不用通过CPU处理读写。当IDE驱动器在读或写时,用户可能会因为CPU周期被IDE驱动器占用而抱怨<a class="UBBWordLink" href="#" target="_blank">系统</a>的缓慢。</p>
<p><strong>获取更快的和磁盘驱动器</strong></p>
<p>标准的SCSI不能比标准的IDE更快地读写数据,但是一些非常快的&ldquo;UltraWide&rdquo;SCSI能够使读写速度有一个真正的飞跃。</p>
<p>EIDE和UDMA是非常快的IDE。新的UDMA能够接近SCSI的速度。UDMA的速度是猝发速度,但持续传输的速度明显慢得多。IDE包括UDMA,是嵌入在驱动器本身中的。不需要购买一个,只要购买一个驱动器,它就包含了,可以获得UDMA性能。</p>
<p>磁盘驱动器经常忽视的一个方面是磁盘本身的速度。磁盘的速度以rpm为单位给出,它代表每分钟旋转多少次。rpm越大,磁盘速度也越快。如果你有这方面的预算,大多数<a class="UBBWordLink" href="#" target="_blank">服务</a>器<a class="UBBWordLink" href="#" target="_blank">系统</a>厂商可提供7500rpm甚至10000rpm SCSI磁盘。标准SCSI和IDE磁盘提供5400rpm速度。</p>
<p><strong>使用多个</strong></p>
<p>IDE和SCSI磁盘可以被链接。IDE链最多包括两个设备,标准SCSI链最多包括七个设备。如果在<a class="UBBWordLink" href="#" target="_blank">系统</a>中有两个或更多SCSI磁盘,很可能被链接到同一个。这样对大多数<a class="UBBWordLink" href="#" target="_blank">操作</a>是足够的,尤其是把计算机当作单用户的工作站时。但是如果有一个<a class="UBBWordLink" href="#" target="_blank">服务</a>器,那么就能够通过对每个SCSI驱动器提供一个改善性能。当然,好的是昂贵的。</p>
<p><strong>调整硬盘参数</strong></p>
<p>使用Hdparm工具可以调整IDE硬盘性能,它设计时专门考虑了使用UDMA驱动器。在缺省情况下,Linux使用是最安全的,但是<a class="UBBWordLink" href="#" target="_blank">设置</a>访问IDE驱动器是最慢的。缺省模式没有利用UDMA可能的最快的性能。</p>
<p>使用Hdparm工具,通过激活下面的特性可以显著地改善性能:</p>
<p>◆ 32位支持 缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>是16位;</p>
<p>◆ 多部分访问 缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>是每次中断单部分传送。</p>
<p>注意:在使用Hdparm之前,确保对<a class="UBBWordLink" href="#" target="_blank">系统</a>已经做了完全的备份。使用Hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失。Hdparm可以提供关于硬盘的大量信息。打开一个终端窗口,输入下面命令获取<a class="UBBWordLink" href="#" target="_blank">系统</a>中第一个IDE驱动器的信息(改变设备名获取其它IDE驱动器的信息):</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -v /dev/had</pre></td></tr></tbody></table>
<p>上面命令显示出当<a class="UBBWordLink" href="#" target="_blank">系统</a>启动时从驱动器获得的信息,包括驱动器<a class="UBBWordLink" href="#" target="_blank">操作</a>在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。</p>
<p>Hdparm也可以测试驱动器传输速率。输入命令测试<a class="UBBWordLink" href="#" target="_blank">系统</a>中第一个IDE驱动器:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -Tt /dev/hda</pre></td></tr></tbody></table>
<p>此测试可测量驱动器直接读和高速缓冲存储器读的速度。结果是一个优化的&ldquo;最好的事例&rdquo;数字。改变驱动器<a class="UBBWordLink" href="#" target="_blank">设置</a>,激活32位传输,输入下面的命令:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -c3 /dev/hda</pre></td></tr></tbody></table>
<p>-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。</p>
<p>大多数新IDE驱动器支持多部分传输,但是Linux缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>为单部分传输。注意:这个<a class="UBBWordLink" href="#" target="_blank">设置</a>在一些驱动器上,激活多部分传输能引起文件<a class="UBBWordLink" href="#" target="_blank">系统</a>的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -m16 /dev/hda</pre></td></tr></tbody></table>
<p>-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器<a class="UBBWordLink" href="#" target="_blank">设置</a>为16或32部分是最合适的。西部数据的驱动器缓冲区小,当<a class="UBBWordLink" href="#" target="_blank">设置</a>大于8部分时性能将显著下降。对西部数据驱动器来说,<a class="UBBWordLink" href="#" target="_blank">设置</a>为4部分是最合适的。激活多部分访问能够减少CPU负载30%~50%,同时可以增加数据传输速率到50%。使用-m0参数可以取消多部分传输。Hdparm还有许多选项可<a class="UBBWordLink" href="#" target="_blank">设置</a>硬盘驱动器,在此不详述。</p>
<p>在Windows系统中,磁盘碎片是一个常见的问题,如果不注意,<a class="UBBWordLink" href="#" target="_blank">系统</a>性能可能被侵蚀。Linux使用第二扩展文件<a class="UBBWordLink" href="#" target="_blank">系统</a>(ext2),它以一种完全不同的方式处理文件存储。Linux没有Windows系统中发现的那种问题,这使得许多人认为磁盘碎片化根本不是一个问题。但是,这是不正确的。</p>
<p>所有的文件<a class="UBBWordLink" href="#" target="_blank">系统</a>随着时间的推移都趋向于碎片化。Linux文件<a class="UBBWordLink" href="#" target="_blank">系统</a>减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的<a class="UBBWordLink" href="#" target="_blank">服务</a>器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能只有从硬盘读出或写入数据时才能注意到。下面是优化Linux系统硬盘性能的一些具体措施。</p>
<p><strong>清理磁盘</strong></p>
<p>这种<a class="UBBWordLink" href="#" target="_blank">方法</a>看上去很简单:清理磁盘驱动器,删除不需要的文件,清除所有需要被保存但将不被使用的文件。如果可能的话,清除多余的目录,并减少子目录的数目。这些建议似乎显而易见,但是你会惊讶地发现,每个磁盘上确实积累了非常多的垃圾。释放磁盘空间可以帮助<a class="UBBWordLink" href="#" target="_blank">系统</a>更好地工作。</p>
<p><strong>整理磁盘碎片</strong></p>
<p>Linux系统上的磁盘碎片整理程序与Windows 98或Windows NT系统中的磁盘碎片整理程序不同。Windows 98引入FAT 32文件<a class="UBBWordLink" href="#" target="_blank">系统</a>,虽然运行Windows 98不必转换为FAT 32文件<a class="UBBWordLink" href="#" target="_blank">系统</a>。Windows可以被<a class="UBBWordLink" href="#" target="_blank">设置</a>为使用FAT或一个叫NTFS的增强文件<a class="UBBWordLink" href="#" target="_blank">系统</a>。所有这些文件<a class="UBBWordLink" href="#" target="_blank">系统</a>以本质上相同的方式处理文件存储。</p>
<p>Linux最好的整理磁盘碎片的<a class="UBBWordLink" href="#" target="_blank">方法</a>是做一个完全的备份,重新格式化分区,然后从备份恢复文件。当文件被存储时,它们将被写到连续的块中,它们不会碎片化。这是一个大工作,可能对于像/usr之类不经常改变的程序分区是不必要的,但是它可以在一个多用户<a class="UBBWordLink" href="#" target="_blank">系统</a>的/home分区产生奇迹。它所花费的时间与Windows NT服务器磁盘碎片整理花费的时间大致上相同。</p>
<p>如果硬盘性能仍不令人满意,还有许多其它的步骤可以考虑,但是任何包含升级或购买新设备的硬件<a class="UBBWordLink" href="#" target="_blank">解决</a>方案可能会是昂贵的。</p>
<p><strong>从IDE升级到SCSI</strong></p>
<p>如果你的硬盘是一个IDE驱动器,可以通过升级到SCSI驱动器获得更好的整体性能。因为IDE必须访问CPU,CPU和磁盘密集型<a class="UBBWordLink" href="#" target="_blank">操作</a>可能变得非常缓慢。SCSI不用通过CPU处理读写。当IDE驱动器在读或写时,用户可能会因为CPU周期被IDE驱动器占用而抱怨<a class="UBBWordLink" href="#" target="_blank">系统</a>的缓慢。</p>
<p><strong>获取更快的和磁盘驱动器</strong></p>
<p>标准的SCSI不能比标准的IDE更快地读写数据,但是一些非常快的&ldquo;UltraWide&rdquo;SCSI能够使读写速度有一个真正的飞跃。</p>
<p>EIDE和UDMA是非常快的IDE。新的UDMA能够接近SCSI的速度。UDMA的速度是猝发速度,但持续传输的速度明显慢得多。IDE包括UDMA,是嵌入在驱动器本身中的。不需要购买一个,只要购买一个驱动器,它就包含了,可以获得UDMA性能。</p>
<p>磁盘驱动器经常忽视的一个方面是磁盘本身的速度。磁盘的速度以rpm为单位给出,它代表每分钟旋转多少次。rpm越大,磁盘速度也越快。如果你有这方面的预算,大多数<a class="UBBWordLink" href="#" target="_blank">服务</a>器<a class="UBBWordLink" href="#" target="_blank">系统</a>厂商可提供7500rpm甚至10000rpm SCSI磁盘。标准SCSI和IDE磁盘提供5400rpm速度。</p>
<p><strong>使用多个</strong></p>
<p>IDE和SCSI磁盘可以被链接。IDE链最多包括两个设备,标准SCSI链最多包括七个设备。如果在<a class="UBBWordLink" href="#" target="_blank">系统</a>中有两个或更多SCSI磁盘,很可能被链接到同一个。这样对大多数<a class="UBBWordLink" href="#" target="_blank">操作</a>是足够的,尤其是把计算机当作单用户的工作站时。但是如果有一个<a class="UBBWordLink" href="#" target="_blank">服务</a>器,那么就能够通过对每个SCSI驱动器提供一个改善性能。当然,好的是昂贵的。</p>
<p><strong>调整硬盘参数</strong></p>
<p>使用Hdparm工具可以调整IDE硬盘性能,它设计时专门考虑了使用UDMA驱动器。在缺省情况下,Linux使用是最安全的,但是<a class="UBBWordLink" href="#" target="_blank">设置</a>访问IDE驱动器是最慢的。缺省模式没有利用UDMA可能的最快的性能。</p>
<p>使用Hdparm工具,通过激活下面的特性可以显著地改善性能:</p>
<p>◆ 32位支持 缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>是16位;</p>
<p>◆ 多部分访问 缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>是每次中断单部分传送。</p>
<p>注意:在使用Hdparm之前,确保对<a class="UBBWordLink" href="#" target="_blank">系统</a>已经做了完全的备份。使用Hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失。Hdparm可以提供关于硬盘的大量信息。打开一个终端窗口,输入下面命令获取<a class="UBBWordLink" href="#" target="_blank">系统</a>中第一个IDE驱动器的信息(改变设备名获取其它IDE驱动器的信息):</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -v /dev/had</pre></td></tr></tbody></table>
<p>上面命令显示出当<a class="UBBWordLink" href="#" target="_blank">系统</a>启动时从驱动器获得的信息,包括驱动器<a class="UBBWordLink" href="#" target="_blank">操作</a>在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。</p>
<p>Hdparm也可以测试驱动器传输速率。输入命令测试<a class="UBBWordLink" href="#" target="_blank">系统</a>中第一个IDE驱动器:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -Tt /dev/hda</pre></td></tr></tbody></table>
<p>此测试可测量驱动器直接读和高速缓冲存储器读的速度。结果是一个优化的&ldquo;最好的事例&rdquo;数字。改变驱动器<a class="UBBWordLink" href="#" target="_blank">设置</a>,激活32位传输,输入下面的命令:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -c3 /dev/hda</pre></td></tr></tbody></table>
<p>-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。</p>
<p>大多数新IDE驱动器支持多部分传输,但是Linux缺省<a class="UBBWordLink" href="#" target="_blank">设置</a>为单部分传输。注意:这个<a class="UBBWordLink" href="#" target="_blank">设置</a>在一些驱动器上,激活多部分传输能引起文件<a class="UBBWordLink" href="#" target="_blank">系统</a>的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输:</p>
<p></p>
<table align="center" border="1" cellpadding="2" cellspacing="0" style="width:400px"><tbody><tr><td><pre>Hdparm -m16 /dev/hda</pre></td></tr></tbody></table>
<p>-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器<a class="UBBWordLink" href="#" target="_blank">设置</a>为16或32部分是最合适的。西部数据的驱动器缓冲区小,当<a class="UBBWordLink" href="#" target="_blank">设置</a>大于8部分时性能将显著下降。对西部数据驱动器来说,<a class="UBBWordLink" href="#" target="_blank">设置</a>为4部分是最合适的。激活多部分访问能够减少CPU负载30%~50%,同时可以增加数据传输速率到50%。使用-m0参数可以取消多部分传输。Hdparm还有许多选项可<a class="UBBWordLink" href="#" target="_blank">设置</a>硬盘驱动器,在此不详述。</p>
<p></p>
頁: [1]
查看完整版本: Linux系统硬盘的维护及优化