ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 系统安全 >

在POWER5上配置SUSE Linux实现性能最大化

日期:2007-08-07 作者:Yong Cai 来自:IBM DW中国


IBM POWER5™ 和 POWER5+™ 系统提供了非常优秀的虚拟化能力。通过阅读本文,您将理解影响运行 SUSE Linux® Enterprise Server (SLES) 10 的 IBM POWER5 系统虚拟化性能的因素,并学习如何使用一些可以帮助诊断和解决性能问题的工具。您还将看到几个如何测试和改进性能的例子。

简介

SUSE Linux Enterprise Server (SLES) 10 操作系统中支持的 IBM System p™ 虚拟化特性包括虚拟 SCSI(VSCSI)和虚拟 LAN(VLAN)。VSCSI 和 VLAN 都提供了一些可以改进系统性能的配置和调优参数。本文着重介绍了一些调优建议,并展示了一些可以为性能监测和虚拟化性能问题诊断提供数据的评测工具特性。有关初始设置和配置的信息,请参看 参考资料。

虚拟 SCSI 调优

对 VSCSI 进行调优的主要方法是选择正确的 I/O 调度程序。您可以为 VSCSI 服务器驱动器和/或 VSCSI 客户机驱动器选择 I/O 调度程序。所选择的调度程序应该要适合驱动器上的任务负载。默认安装使用的是 anticipatory I/O 调度程序。对于 VSCSI 服务器驱动器来说,最好的 I/O 调度程序是 noop。

可以使用的 I/O 调度程序包括:

  • noop —— fifo 排队
  • anticipatory —— 预期调度
  • deadline
  • cfq —— 始终公平排队

要确定正在使用的是哪个 I/O 调度程序,可以查询 /sys 文件系统中的内容。例如,在 SLES 10 上,可以使用下面的命令:

cat /sys/block/<sd*>/queue/scheduler
                  ^use drive of interest

For example using drive sda:
cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq
      

在这个例子中,使用的正是 [noop] 调度程序。您可以向上面例子中给出的文件中回转一个值来实时修改 I/O 调度程序。您也可以通过向 /etc/yaboot.conf 添加一行内容在引导时修改调度器,例如:

append = "elevator=noop"

使用 VSCSI 工具

SLES 10 通用的版本有一个 VSCSI 功能方面的 bug。用户可以从 SUSE Linux 门户(请参看 参考资料)获得 SLES 10 最新的内核更新(2.6.16.21-025-ppc 或更新版本)。这个更新包括了一些补丁修正。

iostat 命令是 sysstat 包中的一部分,可以通过 SUSE 中的 yast 实用工具获得。

  1. 启动 yast。
  2. 选择 software
  3. 选择 software management
  4. 查找 sysstat
  5. 高亮显示 systat 包裹。
  6. 选择 accept 操作。
  7. 按照提示,加载需要的安装盘。

运行 iostat -x 命令会提供很多有关对物理设备和虚拟设备进行读写流量的信息。要查看手册页,请参看 参考资料 中 iostat 列的定义。

诊断 VSCSI 问题

为了诊断与虚拟 SCSI 磁盘有关的性能问题,需要理解 VSCSI 的系统配置。您需要知道虚拟设备与物理硬件之间是如何映射的。

对一个物理 SCSI 磁盘上所有磁盘分区进行操作的总和必须在物理 SCSI 设备的处理能力之内。首先,要查看一下对物理设备的需求。然后,如果对物理设备的需求很高,就查看一下对于每个分区的需求。还要根据需要调整虚拟设备到物理设备的映射,以使对设备操作的需求在物理硬件的处理能力之内。这种调整需要修改虚拟设备到物理设备的映射,或者修改或添加硬件。

考虑这样一个 VSCSI 服务器的例子,它有一个名为 sdc 的 SCSI 磁盘,被划分成 3 个分区: (sdc1sdc2sdc3),每个分区都进行了虚拟化。在客户机使用虚拟化的分区时,都会被作为一个单独的驱动器使用。 iostat 工具显示对驱动器磁盘的使用情况。iostat 可以在客户机使用 sdc1sdc2sdc3 时对它们的使用情况进行度量。最好的方法是在 VSCSI 服务器上首先运行 iostat 来显示对 sdc 的总体使用情况。然后在每个客户机上运行 iostat 获取对分区 sdc1sdc2sdc3 的利用情况。


图 1. 虚拟 SCSI 例子
虚拟 SCSI 例子

理解一个度量示例

下面让我们来看一个度量示例,它显示了为什么需要理解物理磁盘到虚拟磁盘的映射方式。如 图 1 所示, VIO 服务器从 sda 引导。VIO 服务器然后会对 sdbsdc 上的 3 个分区进行虚拟化。VIO 客户机从 sda 上引导,然后会将这 3 个虚拟分区作为 sdbsdcsdd 进行挂载。

本例的任务负载是由 Flexible File System Benchmark (FFSB)(请参看 参考资料 下载这个工具)提供的,它是一个开源工具,很容易配置来提供各种读/写、顺序/随机操作模式,还可以使用其他一些线程选项。对于本例来说,FFSB 被配置用来对客户机磁盘 sdbsdcsdd 的性能进行评测。大型顺序读操作是对 sdb 磁盘进行的。小型随机读操作是对 sdc 磁盘进行的。顺序写操作是对 sdd 磁盘的,如 清单 1 所示。 iostat 工具可以度量这些行为的结果。这个测试首先在每个磁盘上单独运行,然后在这 3 个磁盘上并行运行。

清单 1 给出了对 sdb 执行大型顺序读操作时 iostat 的结果。


清单 1. 大型顺序读操作时 iostat 的输出结果
                
avg-cpu:  %user    %nice   %system %iowait      %steal    %idle
           0.30     0.00    6.35    93.30       0.00      0.00

Device:   rrqm/s   wrqm/s    r/s     w/s        rsec/s    wsec/s     rkB/s    
sda        0.00     0.45    0.10    0.10        0.80      4.80       0.40     
sdb        1.17     0.80  173.36    0.40    82818.59     11.19   41409.30     
sdc        0.00     0.00    0.00    0.00        0.00      0.00       0.00     
sdd        0.00     0.00    0.00    0.00        0.00      0.00       0.00     

Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %util
sda        2.40      28.00      0.00      5.00     5.00    0.10
sdb        5.60     476.68    102.99    592.19     5.75  100.00
sdc        0.00       0.00      0.00      0.00     0.00    0.00
sdd        0.00       0.00      0.00      0.00     0.00    0.00

清单 2 给出了对在 sdc 上执行小型随机读操作时 iostat 的输出结果。


清单 2. 执行小型随机读操作时 iostat 的输出结果
                
avg-cpu:  %user    %nice   %system %iowait      %steal    %idle
           0.05     0.00    0.95    99.00       0.00      0.05

Device:   rrqm/s   wrqm/s    r/s     w/s        rsec/s    wsec/s     rkB/s    
sda        0.00     0.45    0.00    0.10        0.00      4.80       0.00     
sdb        0.00     0.00    0.00    0.00        0.00      0.00       0.00     
sdc        0.00     0.80   98.85    0.40     2390.80     11.19    1195.40     
sdd        0.00     0.00    0.00    0.00        0.00      0.00       0.00     
 
Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %util
sda        2.40      48.00      0.00      0.00     0.00    0.00
sdb        0.00       0.00      0.00      0.00     0.00    0.00
sdc        5.60       8.03     31.56    105.50     3.34  100.00
sdd        0.00       0.00      0.00      0.00     0.00    0.00

最后,清单 3 给出了对 sdd 执行随机写操作时 iostat 的结果。


清单 3. 执行随机写操作时 iostat 的结果
                
avg-cpu:  %user    %nice   %system %iowait      %steal    %idle
           0.00     0.00    1.00    98.95       0.00      0.00

Device:   rrqm/s   wrqm/s    r/s     w/s        rsec/s    wsec/s     rkB/s
sda        0.00     0.45    0.10    0.55        0.80      8.40       0.40     
sdb        0.00     0.00    0.00    0.00        0.00      0.00       0.00     
sdc        0.00     0.00    0.00    0.00        0.00      0.00       0.00     
sdd        0.00   27.69     0.00  455.97        0.00   3866.87       0.00  

Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %util
sda        4.20     14.15       0.01     15.38     4.62    0.30
sdb        0.00      0.00       0.00      0.00     0.00    0.00
sdc        0.00      0.00       0.00      0.00     0.00    0.00
sdd     1933.43      8.48     143.49    297.71     2.19   99.95


这三个测试并行执行时客户机端的 iostat 命令的结果显示,在并行执行测试时,各个磁盘的吞吐量要低于在这些磁盘上单独运行测试时的吞吐量。清单 4 给出了这 3 个测试并行执行时 iostat 的结果。


清单 4. 3 个测试并行执行的结果
                

avg-cpu:  %user    %nice   %system %iowait      %steal    %idle
           0.05     0.00    1.60    98.30       0.00      0.00

Device:   rrqm/s   wrqm/s    r/s     w/s        rsec/s    wsec/s     rkB/s
sda        0.00     0.10    0.05    0.20        0.40      2.80       0.20     
sdb        1.10     0.40   14.84    0.25     7084.86      7.60    3542.43     
sdc        0.00     0.75   52.22    0.45      417.79     11.19     208.90     
sdd        0.00    14.89    0.00  312.29        0.00   2618.29       0.00

Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %util
sda        1.40     12.80       0.00      8.00     6.00    0.15
sdb        3.80    469.93      91.77   4818.38    66.26  100.00
sdc        5.60      8.14      30.72    641.45    18.98  100.00
sdd     1309.15      8.38     142.79    451.13     3.20  100.00

现在来看一下服务器上物理磁盘的使用情况。回想一下 图 1 中服务器驱动器 sdc 有 3 个分区,客户机将它们分别作为驱动器 sdbsdcsdd 使用。服务器端的 iostat 度量显示物理磁盘 sdc 的利用率是 100%,如清单 5 所示。


清单 5. 服务器端 iostat 度量显示了物理驱动器的利用率
                
avg-cpu:  %user    %nice   %system %iowait      %steal    %idle
           0.00     0.00    1.40     0.00       0.00     98.60

Device:   rrqm/s   wrqm/s    r/s     w/s        rsec/s    wsec/s     rkB/s
sda        0.00     0.00    0.00    0.10        0.00      0.80       0.00
sdb        0.00     0.00    0.00    0.00        0.00      0.00       0.00
sdc        0.00     0.00   61.97  322.04     6821.79   2704.65    3410.89

Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %util
sda        0.40      8.00       0.00     15.00    15.00    0.15
sdb        0.00      0.00       0.00      0.00     0.00    0.00
sdc     1352.32     24.81      27.50     70.54     2.60  100.00

这个例子展示了物理磁盘资源出现竞争情况时对吞吐量和响应时间的影响。当 VSCSI 设备的吞吐量或响应时间变差时,查看一下物理设备的利用率,从而确认是否是物理设备竞争的原因。

调优虚拟 LAN

虚拟 LAN 是 POWER Hypervisor™ 的一个功能,它可以在逻辑分区之间启用安全通信,而不需要使用物理 I/O 适配器。当 VLAN 上的 LPAR 之间有 TCP/IP 通信数据时,有一些 TCP/IP 调优参数可以影响数据流的性能。您可以使用一组调优参数,它们在这种没有物理 I/O 适配器的环境中很好地工作。清单 6 给出了一些可获得更好的 VLAN 性能的调优建议。


清单 6. 对 MTU1500 的一些调优建议
                
        /sbin/sysctl -w net.ipv4.tcp_timestamps=1
        /sbin/sysctl -w net.ipv4.tcp_sack=1
        /sbin/sysctl -w net.ipv4.tcp_window_scaling=1
        /sbin/sysctl -w net.core.netdev_max_backlog=3000
        /sbin/sysctl -w net.ipv4.tcp_wmem='4096 87380   30000000'
        /sbin/sysctl -w net.ipv4.tcp_rmem='4096 87380   30000000'
        /sbin/sysctl -w net.ipv4.ip_local_port_range='8096      131072'
        /sbin/sysctl -w net.core.rmem_max=10485760
        /sbin/sysctl -w net.core.rmem_default=10485760
        /sbin/sysctl -w net.core.wmem_max=10485760
        /sbin/sysctl -w net.core.wmem_default=10485760
        /sbin/sysctl -w net.core.optmem_max=10000000
        echo 128 > /sys/class/net/eth0/weight
        echo 128 > /sys/class/net/eth1/weight

使用 VLAN 工具

对 VLAN 进行网络分析的主要工具是 netstat,它可以显示有关网络系统的大量信息。其中两个最有用的输出是接口信息和网络统计信息。您可以使用 netstat -i 显示网络接口信息,使用 netstat -s 显示 TCP/IP 的协议统计信息。

诊断 VLAN 问题

用来度量最大 TCP 带宽的工具是 iperf(请参看 参考资料,访问 National Laboratory for Applied Network Research Web 站点)。

对于本例来说,iperf 用来查看一个 POWER5 系统配置上的 VLAN 带宽,这个系统包括一个 4 处理器的计算机,每个服务器和客户机分区使用了 0.5 个物理 CPU。启用了同步多线程(Simultaneous multithreading,SMT)特性,系统中有 2GB 的内存。报告显示的吞吐量只有大约 500 Mbits/sec。如果使用的是千兆适配器,该值大约是 1000 Mbits/sec。清单 7 给出了 iperf 的吞吐量和 vmstat 的输出结果。 vmstat 是一个 Linux 实时性能监测工具。vmstat 可以在 id (倒数第 2 列)列中报告 CPU 的空闲比率。CPU 利用率的结果显示该列值是 100%,即 CPU 空闲。


清单 7. iperf 吞吐量和 vmstat 输出结果
                

[root@power] /iperf_202/iperf-2.0.2/src > ./iperf -c en0host2 -w 1024KB -N
------------------------------------------------------------
Client connecting to en0host2, TCP port 5001
TCP window size:   256 KByte (WARNING: requested 1.00 MByte)
------------------------------------------------------------
[  3] local 192.168.1.1 port 55990 connected with 192.168.1.2 port 5001
[  3]  0.0-10.0 sec    632 MBytes    530 Mbits/sec

vmstat output:

[root@power] /root > vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 360088  75136 681724    0    0     1     3   13    37  1  6 93  0
 0  0      0 360088  75136 681724    0    0     0     0    6    18  0  0 100  0
 0  0      0 360088  75136 681724    0    0     0     0    9    12  0  0 100  0
 0  0      0 360088  75136 681724    0    0     0     0    6    10  0  0 100  0
 3  0      0 359684  75136 681724    0    0     0     0  358    96  0  2 98  0
 1  0      0 359808  75136 681724    0    0     0     0 14774  1464  0 63 37  0
 1  0      0 359684  75136 681724    0    0     0     8 13913  1452  0 64 36  0
 1  0      0 359808  75136 681724    0    0     0     0 14676  1359  1 65 35  0
 1  0      0 359544  75136 681724    0    0     0     8 14260  1598 12 67 20  0
 1  0      0 359668  75136 681724    0    0     0     0 12198  1882  0 62 38  0
 2  0      0 359544  75136 681724    0    0     0     0 13844  1435  1 63 37  0
 1  0      0 359544  75136 681724    0    0     0     0 14808  1372  0 64 37  0
 1  0      0 359668  75136 681724    0    0     0     0 13934  1454  0 62 37  0
 1  0      0 359700  75136 681724    0    0     0     0 11327  1886  0 64 35  0
 0  0      0 359576  75136 681724    0    0     0     0 14650  1343  0 60 40  0

运行测试的分区只分配了 0.5 个物理 CPU,这使得 vmstat 所度量出来的 CPU 利用率看起来非常高。这可能会导致您认为 iperf 是一个 CPU 密集型的程序。我们对系统重新进行了配置,为每个服务器和客户机分区都分配 1 个物理 CPU。在新配置好的系统上再次运行测试就得到了如清单 8 所示的改进后的结果。


清单 8. 改进后的 iperf 测试结果
                

[root@power] /iperf_202/iperf-2.0.2/src > ./iperf -c en0host2 -w 1024KB -N
------------------------------------------------------------
Client connecting to en0host2, TCP port 5001
TCP window size:   256 KByte (WARNING: requested 1.00 MByte)
------------------------------------------------------------
[  3] local 192.168.1.1 port 39856 connected with 192.168.1.2 port 5001
[  3]  0.0-10.0 sec  1.22 GBytes  1.05 Gbits/sec

通过增加 CPU 的处理能力,测试可以使以太网全速运行。了解了这一点,系统管理员就可以制定适当的 CPU 资源分配方案了。

结束语

理解 SLES 10 所支持的 IBM System p 的虚拟 SCSI 和虚拟 LAN 特性可以帮助管理员对系统进行调优,以便实现更好的性能。本文说明物理磁盘出现资源竞争的情况可以导致 VSCSI 设备吞吐量或响应时间的下降。类似地,CPU 的限制也可能会限制 VLAN 的性能。这两种情况都可以通过向虚拟设备中添加额外的物理资源而得到缓解。

原文链接:http://www.ibm.com/developerworks/cn/linux/es-power5virtualization/

本文被浏览



 相关新闻

先睹为快:虚拟化“吞噬”了LinuxWorld2007-08-06 10:14:51
Linux迎来新内核 增强两个虚拟化方案2007-07-23 10:01:08
Xen魅力:Novell再掀虚拟化技术高潮2007-07-04 09:09:25
Novell为BMW使用Xen虚拟技术提供支持2007-06-06 09:49:50
Red Hat不理睬虚拟化 继续RHEL5计划2007-06-05 13:52:20
用 coLinux 进行虚拟化2007-05-23 16:42:30


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号