LINUX系统性能调谐[2]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

  如果你的系统有多块硬盘,可以考虑使用多个交换分区。每个磁盘上划分一个交换分区。通过在/etc/fstab文件中设置pri 选项,可使多个交换分区具有同样的优先级。Linux系统即可并行地使用它们。这样即可提高交换分区的性能。
  
  
  /dev/hda5        swap       swap  defaults,pri=5 0 0
  /dev/hdc5        swap       swap  defaults,pri=5 0 0
  
  
  
  
  图(二)多个交换分区设置相同的优先级
  当然,如果你的系统内存足够大,而你的系统又远远用不了那么多的内存,那也就用不到什么虚存了。分区时你就可以考虑去掉交换分区。不过作为一个Linux服务器,即使你的内存足够大,还是应该设置交换分区。
  
  2.2 使用hdparm改善Linux系统性能
  
  如果你的Linux系统运行于IDE硬盘,可以使用hdparm工具来提高磁盘I/O的性能。不过使用hdparm要小心,因为可能破坏硬盘上的数据。所以在使用hdparm之前,仔细阅读你的硬盘手册。根据你具体的硬盘规格来使用相应的hdparm开关参数。对一块UltraATA/66 EIDE 硬盘,其控制芯片支持多 PIO 模式和DMA,我们使用以下命令来调谐磁盘性能:
  
      # /sbin/hdparm -x66 -d1 -u1 -m16 -c3 /dev/hda
  
  选项说明:
  
  ① c3 :就是把硬盘的16位格式转换为32位模式(32-bit mode w/sync)。控制数据如何从pci总线传递到控制器。
  ② m16 :改变硬盘的多路扇区的读功能,-m16可以使得硬盘在一次i/o中断中读入16个扇区的数据(据具体硬盘而定)。
  ③ d1:打开DMA模式。
  ④ x66 :在支持UDMA-capable的硬盘中,这个参数可以支持双DMA通道的数据传输模式。
  ⑤ u1 :Linux在处理磁盘中断时,可以unmask其他的中断或者响应其他中断相关的任务。
  
    
  查看以上的更改情况可以使用命令:
  
     # /sbin/hdparm  /dev/hda
  
  测试磁盘I/O性能可以使用命令:
  
     # /sbin/hdparm -tT /dev/hda
  
  如果磁盘的性能有改进的话,可以使用以下命令来保存设置:
  
     # /sbin/hdparm -k1 /dev/hda
  
  2.3 Linux下使用软RAID
  
  RAID(磁盘冗余阵列)是通过将数据分布在多个磁盘上来增强磁盘性能和可靠性的技术。如果你的系统没有硬件RAID控制器的话,在Linux下可以通过软件来实现RAID。RAID的有很多的级别,不同的级别对硬件有不同的要求,相应也会得到不同的性能和可靠性。RAID0为数据分割,数据块被交替写到磁盘,可以得到最好的读写性能,但是不提供数据冗余。RAID1为磁盘镜像,写到磁盘1中的一切也写到磁盘2中,从任何一个磁盘都可以读取。RAID3除了数据分割之外,还指定一个磁盘驱动器来存储奇偶信息。
  
  在LINUX下通过软件来实现RAID, 需要LINUX的内核支持,可以通过编译新内核来添加对RAID的支持。然后还需编译并安装 raidtools 软件包。raidtools 是可以初始化、启动、停止及控制 RAID 阵列的用户级工具。下面是我们用两块IDE硬盘在LINUX内核2.4上实现RAID0的方法。
  
  设置分区 使用RAID0至少需要两个分区,它们位于不同的磁盘。最好做RAID0的两个分区有相同的大小。创建分区时,将分区类型指定为 "FD"。以使 Linux 内核能将它们识别为 RAID 分区,这样,这些分区就可在每次引导时自动被检测并启动。如果您没有以这种方式标记 RAID 分区,则在每次引导之后,必须首先输入 "raidstart --all" 才能挂载 RAID 阵列。我们做成RAID0的两个分区为hda5和hdc5。
  
  编辑/etc/raidtab文件 创建/etc/raidtab文件以描述RAID阵列的配置信息。Linux 内核使用这些信息在引导时自动检测并启动 RAID 阵列,因此必须对创建的每个 RAID 阵列进行这种配置。将分区hda5和hdc5组成md0 RAID0阵列的配置文件如下:
  
  
  raiddev /dev/md0
      raid-level 0
      nr-raid-disks 2
      persistent-superblock  1
      chunk-size 32
      device /dev/hda5
      raid-disk 0
      device /dev/hdc5
      raid-disk 1      
  
  
  
  
  
  图(三) raidtab文件
  在raidtab文件中,"raiddev" 条目指明要创建的 RAID 阵列;"nr-raid-disks" 指定阵列中的磁盘数目;"persistent-superblock" 设置为 1,告诉 raid 工具何时创建该卷;"chunk-size" 以K字节指定 RAID0 使用的块大小;最后,要指定的是组成该阵列的设备即分区。
  
  mkraid 和创建文件系统 使用命令"# mkraid /dev/md0" 命令初始化/dev/md0分区,同时将启动md0 RAID0阵列。接下来,即可在md0上创建你想要得文件系统。我们在Linux服务器上使用的是Reiserfs日志文件系统,创建的命令为"# mkreiserfs /dev/md0"。
  

本文关键:LINUX系统性能调谐
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top