在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速度。
四、运用多个控制器
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
留意:当体系还没有被运用时测验这个设置,以保证在做任何调整时监督体系功能。这样能够确认哪个设置对体系是最好的。