原贴:http://www.ibm.com/developerworks/cn/linux/es-power5virtualization/index.html

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

虚拟 SCSI 和虚拟以太网

文档选项
<tr valign="top"><td width="8"><img alt="" height="1" width="8" src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16" height="16" src="//www.ibm.com/i/c.gif"/></td><td class="small" width="122"><p><span class="ast">未显示需要 JavaScript 的文档选项</span></p></td></tr> <script type="text/javascript" language="JavaScript"> </script>

将此页作为电子邮件发送

级别: 中级

Mike Skelton, 性能分析师, IBM
Yong Cai (ycai@us.ibm.com), 性能分析师, IBM

2007 年 8 月 06 日

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 例子

理解一个度量示例

下面让我们来看一个度量示例,它显示了为什么需要理解物理磁盘到虚拟磁盘的映射方式。如 图 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   %utilsda        2.40      28.00      0.00      5.00     5.00    0.10sdb        5.60     476.68    102.99    592.19     5.75  100.00sdc        0.00       0.00      0.00      0.00     0.00    0.00sdd        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   %utilsda        2.40      48.00      0.00      0.00     0.00    0.00sdb        0.00       0.00      0.00      0.00     0.00    0.00sdc        5.60       8.03     31.56    105.50     3.34  100.00sdd        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/ssda        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   %utilsda        4.20     14.15       0.01     15.38     4.62    0.30sdb        0.00      0.00       0.00      0.00     0.00    0.00sdc        0.00      0.00       0.00      0.00     0.00    0.00sdd     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/ssda        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   %utilsda        1.40     12.80       0.00      8.00     6.00    0.15sdb        3.80    469.93      91.77   4818.38    66.26  100.00sdc        5.60      8.14      30.72    641.45    18.98  100.00sdd     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/ssda        0.00     0.00    0.00    0.10        0.00      0.80       0.00sdb        0.00     0.00    0.00    0.00        0.00      0.00       0.00sdc        0.00     0.00   61.97  322.04     6821.79   2704.65    3410.89

Device:    wkB/s   avgrq-sz   avgqu-sz    await   svctm   %utilsda        0.40      8.00       0.00     15.00    15.00    0.15sdb        0.00      0.00       0.00      0.00     0.00    0.00sdc     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 5001TCP 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 1procs -----------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 5001TCP 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 的性能。这两种情况都可以通过向虚拟设备中添加额外的物理资源而得到缓解。

分享这篇文章……

将本文提交到 Digg
发布到 del.icio.us

在 POWER5 上配置 SUSE Linux 实现性能最大化(来自ibm)相关推荐

  1. 在HP安腾服务器上安装SuSE Linux Enterprise Server(SLES)11SP1手记

    1.在HP的Boot Menu里面将Boot Configuration->Console Configuration->VGA设为P(primary),其他的(例如Serial串口)设为 ...

  2. suse服务器修改ip,SuSE Linux 修改网卡配置 |SUSE Linux 单网卡配置双IP

    linux-Tom:~ # cd /etc/sysconfig/network linux-Tom:~ # vi ifcfg-eth-id-00:40:ca:c7:04:fe    (物理网卡) BO ...

  3. 使用异步 I/O 大大提高应用程序的性能(来自IBM)

    AIO简介 Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强.它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它.AIO 背后的基本思想是允许 ...

  4. Linux 多用户远程,suse linux vnc多用户远程桌面配置实战

    在suse linux上如何实现VNC的多用户远程桌面配置呢,我们看下面的实际案例. 一.启动和配置VNC服务 suse linux中一般默认安装了VNC组件包,可以直接进行启动 #vncserver ...

  5. SuSE Linux防火墙配置

    SuSE Linux防火墙配置 SuSE Linux防火墙配置文件路径:/etc/sysconfig/SuSEfirewall2; 启动.关闭.重启防火墙: rcSuSEfirewall2 start ...

  6. linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs

    在 Linux 上配置软件 RAID 02/02/2017 本文内容 一种比较常见的情况是,在 Azure 中的 Linux 虚拟机上使用软件 RAID 将多个附加的数据磁盘显示为单个 RAID 设备 ...

  7. SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合

    服务器运维与网站架构|Linux运维|X研究 let's face reality,loyalty to an ideal! 首页 Linux Nginx Security Shell 服务器架构 互 ...

  8. linux sftp 中文,Linux(CentOS)上配置 SFTP服务器

    Linux(CentOS)上配置 SFTP服务器 发布于 2017-03-13 06:07:46 | 87 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一套免费使用和自由传播的 ...

  9. linux没有jre文件夹,linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法...

    linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法 出现这个问题可能有以下几种原因: 1.对该文件没有执行的权限. 2.我们的机器是64位的,而下载的jdk是32位的. 我就是后一 ...

最新文章

  1. JavaScript中十种一步拷贝数组的方法
  2. 为什么Bugs没有被修复?
  3. mysql 变量作用域_二十二、MySQL基础系列笔记之变量
  4. Linux上怎样实现文件夹重命名
  5. [故障引起的故事]URL中带加号(+)的处理
  6. 转;VC++中Format函数详解
  7. Java黑皮书课后题第5章:*5.46(倒排一个字符串)编写一个程序,提示用户输入一个字符串,然后以反序显示该字符串
  8. Win11代言人官宣
  9. 数据库发展研究报告(2021年)
  10. 网络访问此计算机,从网络访问此计算机 - 安全策略设置
  11. linux7.0安装过程详解,图解红旗Linux7.0安装过程.doc
  12. test dword ptr [eax],eax ; probe page.
  13. 深度学习技术在社会化推荐场景中的总结(附数据集)
  14. 信息安全技术第五章应用安全(完整详细笔记)
  15. maya表情blendshape_【Maya】角色表情绑定-BlendShape的使用技巧
  16. RecyclerView 报Scrapped or attached views may not be recycled. as Scrap:false isAttached:true异常
  17. intel linux核显性能,Intel UHD Graphics 630 核显性能解析
  18. 半导体中载流子的统计分布
  19. 项目管理的十大知识领域
  20. KanBan系统WeKan安装和使用

热门文章

  1. PC老照片智能一键修复软件
  2. 【机器学习】——方差和偏差、Bagging、Boosting、Stacking
  3. 百度地图引用时,报错A parser-blocking, cross site (i.e. different eTLD+1) script
  4. Erro | NFS不能开机自动挂载
  5. 计网实验一 做网线实现对等网,进行文件共享
  6. 新学生管理系统(一)登陆界面
  7. 计算机常用软件考试试题,计算机常用工具软件试卷试题.docx
  8. java 范式 问号_冒号和他的学生们(连载9)——泛型范式
  9. 【视频】国内直播行业发展现状及盈利模式
  10. python判断语句的使用