优化 AIX 7 网络性能: 第 1 部分,网络概览 — 监控硬件

这个关于 AIX 7 网络的 3 部分系列主要关注优化网络性能的挑战。使用 AIX 7 和新的 POWER 7 架构,您必须考虑您的系统的性能,以及您的网络性能在 LPAR 和 WPAR 环境中的效果。在第 1 部分中,您将检查一些网络配置最佳实践并利用那些最佳实践来有效地监控您的硬件,为此,您将会用到一些网络工具,比如:netstatnetpmonentstatnmon。另外,您还将检查一些用于检查您的接口的工具,以便了解如何配置那些接口。

Martin C. Brown, 作家, Freelance

Martin Brown 成为专业作家已有八年多的时间了。他是题材广泛的众多书籍和文章的作者。他的专业技术涉及各种开发语言和平台 — Perl、 Python、Java、JavaScript、Basic、Pascal、Modula-2、C、C++、Rebol、Gawk、 Shellscript、Windows、Solaris、Linux、BeOS、Mac OS/X 等等 — 还涉及 Web 编程、系统管理和集成。Martin 是 Microsoft 的主题专家(SME),并且是 ServerWatch.com、LinuxToday.com 和 IBM developerWorks 的定期投稿人,他还是 Computerworld、The Apple Blog 和其他站点的正式博客。您可以通过他的 Web 站点 http://www.mcslp.com 与他联络。



Ken Milberg, 作家/网站专家, Future Tech

Ken Milberg 是 PMP,同时也是 techtarget.com 的撰稿人/站点专家,他还为 searchopensource.com 提供 Linux 技术信息和支持。Ken 是 IBM Systems Magazine,Open Edition 的撰稿人和技术编辑。Ken 拥有 University of Maryland University College 的计算机与信息科学学士学位和技术管理科学硕士学位。他是 Long Island POWER-AIX 用户组的创始人和负责人。这些年以来,他在各种规模的企业工作过,并且担任过各种职位,包括 CIO 和高级 AIX 工程师。他现在在 Future Tech 工作,这是一家总部设在长岛的 IBM 业务合作伙伴。Ken 不仅是已通过 PMI 认证的项目管理专业人员(PMP),还是通过 IBM 认证的高级技术专家(CATE,IBM System p5 2006)。



2011 年 1 月 24 日

关于本系列

这个关于 AIX 网络的 3 部分系列的第 1 部分提供了一个网络概览并讨论了一些用于帮助您监控您的硬件的工具。第 2 部分涉及使用一些监控实用工具(比如 nfsstatnmonnfso。)调优 Network File System (NFS)。第 3 部分展示如何监控网络数据包,以及如何使用 netstat 实现监控目的。您将了解如何使用 no 实用工具来调优您的网络子系统。本系列还将阐述网络 I/O 性能调优的各种最佳实践。

简介

当系统管理员得知可能会出现一些网络争用问题时,他们首先想到的通常是运行 netstatnetstat — 相当于使用 vmstatiostat 获取内存报告 — 是获取您的网络配置方式概览的一种快捷方法。与 vmstatiostat 不同的是,这种方法的默认设置可能不会提供您想要的那么多信息。您需要理解 netstat 的正确用法,以及如何在监控您的系统时最好地利用它。

netstat 的确不是 vmstatiostat 意义上的监控工具。您可以使用其他更适合的工具(将在本文后面讨论)来帮助监控您的网络子系统。与此同时,除非您对与网络性能相关的各种组件有一个全面了解,否则您不能真正开始监控。这些组件包括您的网络适配器,您的交换机和路由器,以及您的主机逻辑分区上的虚拟化使用方式。如果您确定自己的确有一个网络瓶颈,修复那个问题实际上可能位于距您最近的主机之外。如果在另一端网络交换机没有适当配置,您可能会束手无策。当然,您可以为网络团队指明正确的方向。您还应该花费一些时间来收集您网络的总体信息。但是,在您真正理解您的网络之前,您怎么能够理解如何诊断并排除您的网络设备的故障呢?在本文中,您将了解一些具体的 AIX 网络跟踪工具,比如 netpmon,以及它们如何帮助您隔离您的瓶颈。

最后,不管您正在尝试调试哪个子系统,都必须将系统调优视为一个正在进行的过程。如前所述,开始监视您的系统的最佳时间是刚刚开始时,在您遇到问题和用户开始抱怨之前。您 必须拥有一个网络性能基线,以便了解系统正常运行时的状态。最后,进行更改时一定要小心谨慎,一次只进行一个更改,以便能够真正评估您的更改的影响。

网络 I/O 概览

本节提供与 AIX 7 相关的网络的概览,介绍网络的物理特征(设备驱动器和适配器),AIX 网络栈,以及如何对您的适配器进行一些更改。

理解与 AIX 相关的网络子系统并不是一个轻松的任务。当您检查 CPU 和内存瓶颈时,从硬件和软件角度看,需要检查的领域要少得多。磁盘 I/O 调优要更复杂一些,因为有更多的问题会影响性能,特别是在系统架构和扩建过程中。在这方面,调优网络可能最像调优磁盘 I/O,这实际上并不十分令人惊讶。下面我们就开始吧。

图 1 展示了 AIX Transmission Control Protocol/Internet Protocol (TCP/IP) 层。

图 1. AIX TCP/IP 层
AIX TCP/IP 层的屏幕快照

图 1 展示,除了运行 netstat 并寻找冲突外,还有更多的网络监控。从应用程序层到媒体层,还有一些领域需要配置、监控和调优。此时,您应该注意到这个展示与 Open Systems Interconnection Basic Reference Model (OSI Model) 之间的一些相似之处。OSI Model 有 7 层(从下到上):

  • 物理层
  • 数据链接层
  • 网络层
  • 传输层
  • 会话层
  • 呈现层
  • 应用程序层

也许,需要理解的最重要的概念是:主机上的每一层都与远程机器上的对应层通信。实际应用程序使用 User Datagram Protocol (UDP) 或 Transmission Control Protocol (TCP) 传输层协议传输数据。它们从您正在使用的应用程序接收数据并将数据分割为一些数据包。数据包本身不相同,这要取决于它们是 UDP 包还是 TCP 包。一般而言,UDP 更快,而 TCP 更安全。有很多可调优参数需要检查 — 您将在本系列后面的文章中了解这些参数。您可能想熟悉一下 no 命令,该命令是设计用于进行绝大多数网络更改的实用工具。从硬件角度看,这个实用工具对于您理解优化性能需要适当配置的组件很关键。尽管您可能会与管理您的交换机和路由器的网络团队协同工作,但您不太可能配置您的交换机和路由器(除非您处于一个小企业或只有一个人的 IT 部门中)。您将使用的最重要的组件是网络适配器。Gigabit Ethernet 现在是标准网络接口,但 10Gbit 网卡和基础架构正在逐渐流行起来。

Maximum Transfer Unit

Maximum Transfer Unit (MTU) 被定义为可以通过网络发送的最大数据包。MTU 的大小取决于网络类型。例如,16 位令牌环的默认 MTU 大小为 17914,而 Fiber Distributed Data Interface (FDDI) 的默认大小为 4352。以太网的默认大小为 1500(启用极大帧[jumbo frame]时为 9000)。数据包越大,数据包传输就越少,系统上的带宽利用率也就越高。特别是,使用极大帧支持在单个数据包中交换大小为 8KB 的整个 NFS 块,这能极大地改进性能。这种情况的一个例外是有些应用程序可能会喜欢更小的数据包,这样的应用程序包括 Internet 上的一些 web 应用程序,原因是大多数 Internet 连接都不支持极大帧。如果您使用的是 Gigabit Ethernet,就可以选择极大帧。要支持使用极大帧,必须注意的是,您的交换机也必须进行相应配置。

要更改为极大帧,使用以下快速路径:# smit devices

然后转到 Communication>Ethernet>Adapter>Change/show characteristics of an Ethernet adapter。尝试将 transmit jumbo frames 选项从 "No" 更改为 "Yes"(参见 清单 1)。

清单 1. 一个以太网适配器屏幕上的字符
              Change / show characteristics of an Ethernet adapter
                        Change / Show Characteristics of an Ethernet Adapter
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
  
                                                     [Entry Fields]
  Ethernet Adapter                                 ent0
  Description                                      Virtual I/O Ethernet Adapter (l-lan)
  Status                                           Available
  Location
  Enable ALTERNATE ETHERNET address                no                                +
  ALTERNATE ETHERNET address                      [0x000000000000]                   +
  Minimum Tiny Buffers                            [512]                              +#
  Maximum Tiny Buffers                            [2048]                             +#
  Minimum Small Buffers                           [512]                              +#
  Maximum Small Buffers                           [2048]                             +#
  Maximum Medium Buffers                          [128]                              +#
  Maximum Medium Buffers                          [256]                              +#
  Minimum Large Buffers                           [24]                               +#
  Maximum Large Buffers                           [64]                               +#
  Minimum Huge Buffers                            [24]                               +#
  Maximum Huge Buffers                            [64]                               +#
  Transmit Copy Buffers                           [32]                               +#
  Transmit Copy Buffer Size                       [65536]                            +#
  Trace Debug Enable                               no                                +
  Checksum Offload Enable                          yes                               +
  I/O memory entitlement reserved for device       0
  Apply change to DATABASE only                    no                                +

极大帧选项在哪里?在本例中,您不能进行此更改,原因是这个系统上只使用 Virtual I/O Ethernet — 稍后将详细讨论这个主题。

在可以直接访问网络硬件的系统上,使用 清单 2 检查系统。

清单 2. 检查系统
              Change / show characteristics of an Ethernet adapter

Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                                        [Entry Fields]
  Ethernet Adapter                                    ent1
  Description                                         10/100/1000 Base-TX P>
  Status                                              Available
  Location                                            1j-08
  RX descriptor queue size                           [1024]                  +#
  TX descriptor queue size                           [1024]                  +#
  Software transmit queue size                       [8192]                  +#
  Transmit jumbo frames                               yes                    +
  Enable hardware TX TCP resegmentation               yes                    +
  Enable hardware transmit and receive checksum       yes                    +
  Media speed                                         Auto_Negotiation       +
  Enable ALTERNATE ETHERNET address                   no                     +
  ALTERNATE ETHERNET address                         [0x000000000000]        +
  Apply change to DATABASE only                       no                     +

F1=Help             F2=Refresh          F3=Cancel           F4=List
F5=Reset            F6=Command          F7=Edit             F8=Image
F9=Shell            F10=Exit            Enter=Do

现在您已经更改了相应字段来支持极大帧。

媒体速度

大多数现代网络交换机和环境都能利用自动协商机制(auto-negotiation)来提供最佳速度,特别是全双工网络交换机成为标准后。但是,如果自动协商机制不能配置网络交换机能够支持的速度,则需要强制执行一个特殊配置。

lsattr 命令提供需要的信息。en 前缀显示驱动程序参数,而 ent 前缀显示硬件参数。下面显示硬件参数(见 清单 3)。

清单 3. 显示硬件参数
testsys:/home/test>lsattr -El ent0
alt_addr       0x000000000000 Alternate Ethernet Address                 
Truechksum_offload yes        Checksum Offload Enable                    True
copy_buffs     32             Transmit Copy Buffers                      True
copy_bytes     65536          Transmit Copy Buffer Size                  True
desired_mapmem 0              I/O memory entitlement reserved for device False
max_buf_huge   64             Maximum Huge Buffers                       True
max_buf_large  64             Maximum Large Buffers                      True
max_buf_medium 256            Maximum Medium Buffers                     True
max_buf_small  2048           Maximum Small Buffers                      True
max_buf_tiny   2048           Maximum Tiny Buffers                       True
min_buf_huge   24             Minimum Huge Buffers                       True
min_buf_large  24             Minimum Large Buffers                      True
min_buf_medium 128            Minimum Medium Buffers                     True
min_buf_small  512            Minimum Small Buffers                      True
min_buf_tiny   512            Minimum Tiny Buffers                       True
trace_debug    no             Trace Debug Enable                         True
use_alt_addr   no             Enable Alternate Ethernet Address          True

在本例中,您的接口被设置为自动协商。

您还应该检查固件版本,确保它们是最新的。据观察,更新到最新固件版本时,许多网络问题都得到了解决。lscfg 命令提供固件信息(见 清单 4)。

清单 4. 使用 lscfg 命令显示固件信息
testsys:/home/test >lscfg -vp | grep -p ETHERNET
      4 X 1GB ETHERNET:        Record Name.................VINI
        Flag Field..................XXET
        Hardware Location Code......U78C0.001.DBJ3229-P2-C8
        Customer Card ID Number.....2BC4
        Serial Number...............YL10D9360034
        CCIN Extender...............1
        Product Specific.(VZ).......04
        FRU Number..................46K5965
        Part Number.................46K6484
        Product Specific.(HE).......0001
        Product Specific.(CT).......30910008
        Product Specific.(HW).......0001
        Product Specific.(B3).......000000000001
        Product Specific.(B4).......00
        Product Specific.(B7).......000000000000000000000000
        Product Specific.(B1).......00215EEB40C0002000215EEB40E00020
        Version.....................ipzSeries
      Physical Location: U78C0.001.DBJ3229-P2-C8

      4 X 1GB ETHERNET:
        Record Name.................VINI
        Flag Field..................XXET
        Hardware Location Code......U78C0.001.DBJ3226-P2-C8
        Customer Card ID Number.....2BC4
        Serial Number...............YL10D9360085
        CCIN Extender...............1
        Product Specific.(VZ).......04
        FRU Number..................46K5965
        Part Number.................46K6484
        Product Specific.(HE).......0001
        Product Specific.(CT).......30910008
        Product Specific.(HW).......0001
        Product Specific.(B3).......000000000001
        Product Specific.(B4).......00
        Product Specific.(B7).......000000000000000000000000
        Product Specific.(B1).......00215EEB4680002000215EEB46A00020
        Version.....................ipzSeries
      Physical Location: U78C0.001.DBJ3226-P2-C8

      4 X 1GB ETHERNET:
        Record Name.................VINI
        Flag Field..................XXET
        Hardware Location Code......U78C0.001.DBJ3227-P2-C8
        Customer Card ID Number.....2BC4
        Serial Number...............YL10D9360028
        CCIN Extender...............1
        Product Specific.(VZ).......04
        FRU Number..................46K5965
        Part Number.................46K6484
        Product Specific.(HE).......0001
        Product Specific.(CT).......30910008
        Product Specific.(HW).......0001
        Product Specific.(B3).......000000000001
        Product Specific.(B4).......00
        Product Specific.(B7).......000000000000000000000000
        Product Specific.(B1).......00215EEB4140002000215EEB41600020
        Version.....................ipzSeries
      Physical Location: U78C0.001.DBJ3227-P2-C8

参见 参考资料 部分的链接,获取您的适配器的当前版本信息。

尽管本系列在后续部分关注调优,但您可能会想现在开始熟悉网络子系统的内存管理工具。现在您需要知道的是它与名为 mbufs 的数据结构相关。这些数据结构用于存储入站和出站流量的数据。这些缓冲区的大小从 32 字节到 16384 字节不等。它们通过向 Virtual Memory Manager (VMM) 发出分配请求进行创建。在 SMP 机器中,每个内存池都针对每个处理器平均分割。下面的 “监控” 小节将展示如何查看 mbufs。需要注意的一个重要概念是,处理器不能从自己的处理器外部借用内存池。

您应该熟悉的另外两个概念是虚拟以太网和共享以太网。

  • 虚拟以太网:虚拟以太网支持在同一个大型机上的逻辑分区之间进行基于内部分区和基于 IP 的通信。这通过使用一个虚拟 I/O 交换机完成。以太网适配器本身通过使用 HMC 创建和配置。如果您回想一下,您以前应该尝试过更改使用虚拟以太网配置的适配器。
  • 共享以太网:共享以太网支持使用 Virtual I/O servers (VIOs),其中几个主机可以共享一个物理网络适配器。通常,共享以太网用在不需要太多网络带宽的环境中。

尽管本系列并不是关注虚拟化,但您应该理解,如果您正在使用虚拟化,除了您在主机上进行的操作外,还有可能有其他原因形成您的瓶颈。尽管虚拟化是种不错的技术,但要注意不要从您的 VIO 服务器共享太多适配器,否则您可能会付出巨大的网络 I/O 代价。还要记住一点,使用工作负载分区(WPAR),主机环境的网络配置被使用并被每个分区共享;不能单独配置 WPAR 网络性能。使用适当的监控工具,问题出现时您将收到通知。

另外,应用程序性能可能会受到一些基础服务的影响,比如用于解析主机名和 Internet 地址的域名服务(DNS)。

监控

本节概述一些常用的网络监控命令和特定的 AIX 工具。一些工具支持快速诊断性能问题,而另一些工具则捕获历史趋势和分析数据。

我们返回原来的备用命令 netstat,该命令用于显示总体网络统计数据。您经常使用的命令之一可能是 netstat -in(参见 清单 5)。

清单 5. 使用带有 -in 选项的 netstat
l488pp065_pub[/tmp] > netstat -in
Name  Mtu   Network     Address            Ipkts Ierrs    Opkts Oerrs  Coll
en1   1500  link#2      66.da.93.d1.6b.18 70136750     0   336237     0     0
en1   1500  10.153      10.153.20.65      70136750     0   336237     0     0
en0   1500  link#3      66.da.93.d1.6b.17 202571785    0   79277      0     0
en0   1500  172.29.128  172.29.148.225    202571785    0   79277      0     0
lo0   16896 link#1                         778719      0   778718     0     0
lo0   16896 127         127.0.0.1          778719      0   778718     0     0
lo0   16896 ::1%1                          778719      0   778718     0     0

其中各个字段的含义如下:

  • Name:接口名称。
  • MTU:接口最大传输单位(Maximum Transfer Unit)大小。
  • Network:接口连接到的实际网络地址。
  • Address:Mac 和 IP 地址。
  • Ipkts:接口接收到的数据包总量。
  • Ierrs:从接口返回的错误报告量。
  • Opkts:从接口传输的数据包量。
  • Oerrs:从接口传输的错误数据包量。
  • Coll:适配器上的冲突量。如果您使用的是以太网,这里不会显示任何内容。

另一个方便的 netstat 标志是 -m 选项。这个标记允许您查看内核 malloc 统计数据;mbuf 内存请求,包括缓冲区大小、CPU 的使用和故障(参见 清单 6)。

清单 6. 带有 -m 选项的 netstat
l488pp065_pub[/tmp] > netstat -m
Kernel malloc statistics:

******* CPU 0 *******
By size           inuse     calls failed   delayed    free   hiwat   freed
64                  566   2015884      0         7     266    5240       0
128                5890   1830085      0       175     158    2620       0
256                5781    651987      0       295    2875    5240     500
512                8000 181192188      0       972      56    6550       0
1024               3165   1889042      0       792      35    2620       0
2048               1071   3387085      0       520      23    3930       0
4096               2056      2775      0        83       5    1310       0
8192                  6       260      0         3     163     327       0
16384               256       413      0        62       0     163       0
32768                55       274      0        23       4      81       0
65536               117       175      0        76       0      81       0
131072                4         5      0         0     102     204       0


******* CPU 1 *******
By size           inuse     calls failed   delayed    free   hiwat   freed
64                   46    226765      0         0     146    5240       0
128                  58    152657      0         2     134    2620       0
256                  51     70035      0         2     301    5240       0
512                  78  46458768      0         4      66    6550       0
1024                 62    171426      0        12      30    2620       0
2048                 23   3669503      0         5      25    3930       0
4096                  1       891      0         4       9    1310       0
8192                  1       567      0         3     306     327       0
16384                 0        12      0         5       2     163       0
32768                 2        17      0         3       7      81       0
65536                 0        11      0         6       0      81       0
131072                0         1      0         0      20      40       0


******* CPU 2 *******
By size           inuse     calls failed   delayed    free   hiwat   freed
64                   21      1295      0         1      43    5240       0
128                   9       781      0         0      23    2620       0
256                   9      1226      0         0      39    5240       0
512                  81  36991563      0        10      55    6550       0
1024                 27      1241      0        15      33    2620       0
2048                  5      3286      0         0      23    3930       0
4096                  0        52      0         1       5    1310       0
8192                  0         1      0         1       0     327       0
32768                 0         1      0         1       1      81       0
131072                0         0      0         0      16      32       0


******* CPU 3 *******
By size           inuse     calls failed   delayed    free   hiwat   freed
64                   42      1224      0         2      86    5240       0
128                  15      1195      0        13     401    2620       0
256                  12      2607      0        82    1316    5240       0
512                  83  36405229      0       222    1733    6550       0
1024                 32      1220      0        14      32    2620       0
2048                 23      4549      0       260     507    3930       0
4096                  1        42      0         3       3    1310       0
8192                  0        58      0         7      21     327       0
16384                 0       128      0        19     121     163       0
32768                 2        29      0         7      22      81       0
65536                 0        47      0        24      47      81       0
131072                0         0      0         0     102     204       0

-m 选项特别有用,因为它按照各个 CPU 显示网络性能统计数据。当您监控和管理 LPAR 和 WPAR 环境的性能时,关联您的 CPU 资源和网络资源的能力能够向您提供关于网络资源分配和分布的宝贵信息。

对于以太网,您可以使用 entstat 命令来显示设备-驱动程序统计数据。这提供丰富的信息(参见 清单 7)。

清单 7. 使用 entstat 命令来显示设备驱动程序统计数据
l488pp065_pub[/tmp] > entstat -d ent0
-------------------------------------------------------------
ETHERNET STATISTICS (ent0) :
Device Type: Virtual I/O Ethernet Adapter (l-lan)
Hardware Address: 66:da:93:d1:6b:17
Elapsed Time: 16 days 1 hours 48 minutes 7 seconds

Transmit Statistics:                          Receive Statistics:
--------------------                          -------------------
Packets: 79636                                Packets: 203054741
Bytes: 15868037                               Bytes: 30905882351
Interrupts: 0                                 Interrupts: 201058047
Transmit Errors: 0                            Receive Errors: 0
Packets Dropped: 0                            Packets Dropped: 0
                                              Bad Packets: 0
Max Packets on S/W Transmit Queue: 0         
S/W Transmit Queue Overflow: 0
Current S/W+H/W Transmit Queue Length: 0

Broadcast Packets: 5                          Broadcast Packets: 203036730
Multicast Packets: 6171                       Multicast Packets: 215
No Carrier Sense: 0                           CRC Errors: 0
DMA Underrun: 0                               DMA Overrun: 0
Lost CTS Errors: 0                            Alignment Errors: 0
Max Collision Errors: 0                       No Resource Errors: 0
Late Collision Errors: 0                      Receive Collision Errors: 0
Deferred: 0                                   Packet Too Short Errors: 0
SQE Test: 0                                   Packet Too Long Errors: 0
Timeout Errors: 0                             Packets Discarded by Adapter: 0
Single Collision Count: 0                     Receiver Start Count: 0
Multiple Collision Count: 0
Current HW Transmit Queue Length: 0

General Statistics:
-------------------
No mbuf Errors: 0
Adapter Reset Count: 0
Adapter Data Rate: 20000
Driver Flags: Up Broadcast Running 
        Simplex 64BitSupport ChecksumOffload 
        DataRateSet 

Virtual I/O Ethernet Adapter (l-lan) Specific Statistics:
---------------------------------------------------------
RQ Length: 4481
Trunk Adapter: False
Filter MCast Mode: False
Filters: 255
  Enabled: 1  Queued: 0  Overflow: 0
LAN State: Operational

Hypervisor Send Failures: 0
  Receiver Failures: 0
  Send Errors: 0
Hypervisor Receive Failures: 0

Invalid VLAN ID Packets: 0

ILLAN Attributes: 0000000000003002 [0000000000003002]

Port VLAN ID:     2
VLAN Tag IDs:  None


Switch ID: ETHERNET0

Hypervisor Information  
  Virtual Memory        
    Total (KB)                 79
  I/O Memory            
    VRM Minimum (KB)          100
    VRM Desired (KB)          100
    DMA Max Min (KB)          128

Transmit Information    
  Transmit Buffers       
    Buffer Size             65536
    Buffers                    32
    History             
      No Buffers                0
  Virtual Memory

对于现代网络交换机来说,冲突基本上是以前的事了,但要查找传输错误并确保它们不会增长得太快。您需要了解如何对冲突和错误问题进行故障诊断,这甚至要在您开始考虑调优之前。另外,您可以使用 netstat -v,这个命令提供类似的信息。

我们来看看 netpmonnetpmon 提供 CPU 在网络方面的占用,它还包括关于网络设备驱动程序 I/O 和 Internet 套接字调用的数据以及其他各种统计数据。类似于它的其他跟踪工具 tproffilemon,它启动一个跟踪并在后台运行,直到您使用 trcstop 命令停止它。我们喜欢 netpmon,因为它真的向您提供网络活动的一个详细概览,还捕获趋势和分析数据(尽管对于这个目的,它没有 nmon 那么有用)。这里您将使用一个 200 万字节的跟踪缓冲区(参见 清单 8)。

清单 8. 带有 -T 选项的 netpmom
l488pp065_pub[/tmp] > netpmon -T 2000000 -o /tmp/net.out
Run trcstop command to signal end of trace.
Sun Aug 15 04:58:06 2010
System: AIX 7.1 Node: l488pp065_pub Machine: 00F604884C00

现在您将停止它(参见 清单 9)。

清单 9. 停止 netpmom
l488pp065_pub[/tmp] > trcstop[netpmon: Reporting started]
23675650 Missed Entries found

[netpmon: Reporting completed]
[               4 traced cpus               ]
[         0.091 secs total preempt time   ]

[netpmon: 43.388 secs in measured interval]

我们看看数据。这只是一个小型输出样例(参见 清单 10)。

清单 10. 输出样例
Sun Aug 15 04:58:06 2010System: AIX 7.1 Node: l488pp065_pub Machine: 00F604884C00


========================================================================

Process CPU Usage Statistics:
-----------------------------
                                                   Network
Process (top 20)             PID  CPU Time   CPU %   CPU %
----------------------------------------------------------
netpmon                 12976354   41.7559  24.072   0.000
netpmon                 14155800   32.1352  18.526   0.000
inetd                   14155804   29.3093  16.897   0.000
xmtopas                 14155834   29.2385  16.856   0.000
xmtopas                 14155830   29.2381  16.856   0.000
xmtopas                 14155822   28.9899  16.713   0.000
xmtopas                 14155816   28.9433  16.686   0.000
xmtopas                 14155826   28.9390  16.683   0.000
xmtopas                 14155828   28.9308  16.679   0.000
inetd                   14155824   28.9287  16.677   0.000
xmtopas                 14155820   28.9227  16.674   0.000
xmtopas                 14155814   28.9158  16.670   0.000
inetd                   14155866   23.7606  13.698   0.000
inetd                   14155864   23.7131  13.671   0.000
xmtopas                 14155846   19.0223  10.966   0.000
inetd                   14155848   19.0083  10.958   0.000
inetd                    9371742   18.8547  10.870   0.000
inetd                    9371658   16.5665   9.551   0.000
inetd                    9371886   16.4571   9.488   0.000
xmtopas                  9371888   16.4094   9.460   0.000
----------------------------------------------------------
Total (all processes)             838.3315 483.300   0.000
Idle time                          78.8376  45.450

========================================================================

First Level Interrupt Handler CPU Usage Statistics:
---------------------------------------------------
                                                   Network
FLIH                              CPU Time   CPU %   CPU %
----------------------------------------------------------
data page fault                   255.0988 147.065   0.000
UNKNOWN                            17.9673  10.358   0.000
PPC decrementer                     2.7282   1.573   0.000
external device                     0.0081   0.005   0.000
instruction page fault              0.0002   0.000   0.000
queued interrupt                    0.0000   0.000   0.000
----------------------------------------------------------
Total (all FLIHs)                 275.8026 159.001   0.000

========================================================================

TCP Socket Call Statistics (by Process):
----------------------------------------
                                   ------ Read -----   ----- Write -----
Process (top 20)             PID   Calls/s   Bytes/s   Calls/s   Bytes/s
------------------------------------------------------------------------
sshd:                    5636334      0.12      1888      0.53        37
nonstop_aix              3539136      0.05         9      0.05         0
java                     4260046      0.05         9      0.05         0
------------------------------------------------------------------------
Total (all processes)                 0.21      1907      0.62        37

========================================================================

Detailed TCP Socket Call Statistics (by Process):
-------------------------------------------------

PROCESS: sshd:   PID: 5636334
reads:                  5

如您所见,这期间几乎没有正在进行的总体网络 I/O 活动。最上面的部分最重要,因为它真的帮助您理解什么进程正在使用网络 I/O 时间,您可以使用更详细的每个进程输出来获取更具体的信息。lsattr(此前使用来查看硬件参数)是您将经常用于显示您的接口的统计数据的另一个命令。您在这里看到的属性使用 chdevno 命令配置。我们来显示您的驱动程序参数(参见 清单 11)。

清单 11. 使用 lsattr 显示驱动程序参数
l488pp065_pub[/tmp] > lsattr -El en0alias4                       
IPv4                         Alias including Subnet Mask                True
alias6                       IPv6 Alias including Prefix Length         True
arp           on             Address Resolution Protocol (ARP)          True
authority                    Authorized Users                           True
broadcast                    Broadcast Address                          True
mtu           1500           Maximum IP Packet Size for This Device     True
netaddr       172.29.148.225 Internet Address                           True
netaddr6                     IPv6 Internet Address                      True
netmask       255.255.192.0  Subnet Mask                                True
prefixlen                    Prefix Length for IPv6 Internet Address    True
remmtu        576            Maximum IP Packet Size for REMOTE Networks True
rfc1323                      Enable/Disable TCP RFC 1323 Window Scaling True
security      none           Security Level                             True
state         up             Current Interface Status                   True
tcp_mssdflt                  Set TCP Maximum Segment Size               True
tcp_nodelay                  Enable/Disable TCP_NODELAY Option          True
tcp_recvspace                Set Socket Buffer Space for Receiving      True
tcp_sendspace                Set Socket Buffer Space for Sending        True

最后,我们看看 图 2

图 2. nmon 统计数据
nmon 统计数据的屏幕快照

如果您一直关注关于 AIX 7 的其他系列(参见 参考资料),您将知道我们钟爱 nmon,一旦您开始使用它,您应该也会爱上它。使用 nmon(在启动之后输入 n),您将得到您的网络中正在进行的所有事物的一个快速快照,包括适配器细节、MTU、错误计数和冲突、以及 megabit 排序。

另外,您还能使用 nmon 捕获数据。使用 nmon analyser,您可以从 Microsoft® Excel 工作表直接打印图形报告。参见 参考资料 中的链接,获取 nmon 手册的一个 IBM Wiki 和一些下载。

结束语

本文介绍了网络 I/O 子系统的相对重要性,定义了 AIX 7 网络 I/O 层,并阐述了如何将它与 OSI Model 联系起来。您了解了网络配置的一些最佳实践,更改了您的以太网设置来支持最大帧,并查看了接口硬件和驱动程序数据。您甚至检查了一些可用监控工具,并使用了 netpmonnmon 来捕获数据。在本系列下一部分中,您将调优 NFS,进一步了解一些监控实用程序,比如 nfsstatnmon,并了解使用 nfso 进行调优。

参考资料

学习

  • AIX memory affinity support:通过 IBM System p™ and AIX 信息中心了解关于 AIX 内存的更多信息。
  • IBM Redbooks:“Database Performance Tuning on AIX” 帮助系统设计人员、系统管理员和数据库管理员设计、规划、实现、维护、监视和优化 AIX 上的 Relational Database Management System (RDMBS),从而实现最佳性能。
  • "Power to the people"(developerWorks,2004 年 5 月):阅读这篇文章,以了解 IBM 在芯片制造方面的历史。
  • "AIX 中的处理器关联"(developerWorks,2006 年 11 月):使用进程关联设置对线程进行绑定或取消绑定,这有助于找到麻烦的挂起或死锁问题的原因。通过阅读这篇文章了解如何使用处理器关联对进程进行限制,让进程只在指定的 CPU 上运行。
  • "CPU monitoring and tuning"(2002 年 3 月):了解如何使用标准的 AIX 工具帮助判断 CPU 瓶颈。
  • Operating system and device management:IBM 的这份文档向用户和系统管理员提供全面的系统管理和设备管理信息,可以帮助您在执行各种任务时选择适当的选项,比如系统备份和恢复系统、管理物理和逻辑存储以及调整分页空间。
  • "nmon 性能:分析 AIX 和 Linux® 性能的免费工具"(developerWorks,2006 年 2 月):这个免费工具可以在一个屏幕上提供大量的信息。
  • "nmon analyser —— 生成 AIX 性能报告的免费工具"(developerWorks,2006 年 4 月):通过阅读这篇文章,了解如何从 nmon 的输出生成各种便于报告的图表。
  • AIX 7.1 信息中心 提供 AIX 操作系统的技术信息。
  • The IBM AIX Version 6.1 Differences Guide 有助于了解 AIX 6.1 中的变动。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • 在 AIX 和 UNIX 库中搜索以下主题:

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=619551
ArticleTitle=优化 AIX 7 网络性能: 第 1 部分,网络概览 — 监控硬件
publish-date=01242011