排除 XFS 性能故障(报告的柱面数

排除 XFS 性能故障(报告的柱面数

我有两台硬件相同的服务器,都运行 CentOS 5.8。它们都有 40 TB 外部 RAID 阵列(通过 eSATA)连接到 LSI MegaRAID SAS 9280 卡。该阵列有一个 GUID 分区表,并且有一个大的 XFS 分区。Machine1 上的磁盘性能比 Machine2 好得多,我正在试图找出原因。从这个 hdparm 输出中可以明显看出:

[root@Machine1]# hdparm -t /dev/sdc1
/dev/sdc1:
 Timing buffered disk reads:  1150 MB in  3.00 seconds = 383.27 MB/sec

[root@Machine2]# hdparm -t /dev/sdc1
/dev/sdc1:
 Timing buffered disk reads: 286 MB in  3.03 seconds =  94.55 MB/sec

...当我运行需要大量磁盘 I/O 的大型作业时,这一点也很明显(在 Machine2 上,IO 繁重的进程往往会进入不间断的睡眠状态(状态为“D”),但在 Machine1 上则不会。

我注意到,ls -ls(第一列)报告的块大小使用情况对于不同机器上的相同文件有所不同:

[root@Machine1]$ ls -ls
      8 -rw-rw-r-- 1 user1 user1        600 Feb 18 15:41 file1.txt
     48 -rwxrwxr-x 1 user1 user1      43814 Feb 18 15:31 file2.gz
    696 -rwxrwxr-x 1 user1 user1     706287 Feb 18 15:41 file3.txt

[root@Machine2]$ ls -ls
      4 -rw-rw-r-- 1 user1 user1        600 Feb 18 11:57 file1.txt
     44 -rwxrwxr-x 1 user1 user1      43814 Feb 18 10:15 file2.gz
    692 -rwxrwxr-x 1 user1 user1     706287 Feb 18 10:15 file3.txt

我发现的唯一其他区别是使用 hdparm -g 显示几何图形。它显示了不同的柱面数(第一个数字):

[root@Machine1]# hdparm -g /dev/sdc
/dev/sdc:
 geometry     = 40529/255/63, sectors = 85930803200, start = 0

[root@Machine2]# hdparm -g /dev/sdc
/dev/sdc:
 geometry      = 5348945/255/63, sectors = 85930803200, start = 0

但是 fdisk 报告相同的两台机器的磁柱数量(下面仅显示 Machine1)——或者也许由于警告消息而无法信任 fdisk?

[root@Machine1]# fdisk -lu /dev/sdc

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

WARNING: The size of this disk is 44.0 TB (43996571238400 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID 
partition table format (GPT).

Disk /dev/sdc: 43996.5 GB, 43996571238400 bytes
255 heads, 63 sectors/track, 5348945 cylinders, total 85930803200 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1  4294967295  2147483647+  ee  EFI GPT

两台机器的 xfs_info 输出相同(下面仅显示 Machine1):

[root@Machine1]# xfs_info /dev/sdc1
meta-data=/dev/sdc1              isize=256    agcount=41, agsize=268435455 blks
         =                       sectsz=512   attr=1
data     =                       bsize=4096   blocks=10741350391, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096  
log      =internal               bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

我现在很困惑。有人能提出下一步的建议吗?

谢谢!

相关内容