AIX网络性能分析.docx

上传人:b****1 文档编号:12512580 上传时间:2023-04-19 格式:DOCX 页数:53 大小:45.90KB
下载 相关 举报
AIX网络性能分析.docx_第1页
第1页 / 共53页
AIX网络性能分析.docx_第2页
第2页 / 共53页
AIX网络性能分析.docx_第3页
第3页 / 共53页
AIX网络性能分析.docx_第4页
第4页 / 共53页
AIX网络性能分析.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

AIX网络性能分析.docx

《AIX网络性能分析.docx》由会员分享,可在线阅读,更多相关《AIX网络性能分析.docx(53页珍藏版)》请在冰豆网上搜索。

AIX网络性能分析.docx

AIX网络性能分析

出现性能问题的时候,您的系统可能一点过失也没有,而真正的故障原因却是外面的建筑物。

如果要知道是否是网络影响总体的性能,一个简单的方法就是比较涉及网络的操作和那些和网络无关的操作。

如果您正在运行的程序在进行相当距离的远程读取和写入,而且运行很慢,但其他的操作看起来运行正常,这时可能是网络问题造成的。

如果您正在运行的程序在进行相当距离的远程读取和写入,而且运行很慢,但其他的操作看起来运行正常,这时可能是网络问题造成的。

一些潜在的网络瓶颈可能由以下因素造成:

*客户端网络接口s

*网络带宽

*网络拓扑结构

*服务器端网络接口

*服务器端CPU负载

*服务器存储器使用状况

*服务器带宽

*配置效率低下

一些工具能够进行网络资料统计,给出各种各样的信息,但只有其中的一部分是和性能调谐相关的。

为了改善性能,您可以使用no(网络选项)命令和nfso命令来对NFS选项进行调谐。

您还可以使用chdev和ifconfig命令来改变系统和网络的参数值。

ping命令

在下面这些情况下ping命令是有帮助的:

*确定网络的状态和各种外部主机。

*跟踪并隔离硬件和软件故障。

*对网络的检测、测定和管理。

下面列出的是一些和性能调谐相关联的ping命令参数项:

-c

指定了信息包数。

如果您有IP跟踪记录,这个参数项是有用的。

您可以捕捉到ping信息包的最小值。

-s

指定信息包的长度。

您可以使用这个参数项来检查分段和重新组合。

-f

以10ms的间歇发送信息包或是在每次回应之后立即发送。

只有根用户才可以使用这个参数项。

如果您需要加载您的网络或系统,使用-f参数项就很方便。

比如,如果您猜测您的故障是过量负载造成的,可以试着有意加载您的工作区来证实您的怀疑。

打开一些aixterm窗口,并在每个窗口中运行ping-f命令。

您的以太网使用状况很快就会达到接近100%。

下面是一个例子:

#date;ping-c1000-fwave;date

FriJul2311:

52:

39CDT1999

PING:

(9.53.153.120):

56databytes

.

----PINGStatistics----

1000packetstransmitted,1000packetsreceived,0%packetloss

round-tripmin/avg/max=1/1/23ms

FriJul2311:

52:

42CDT1999

注:

这个命令在网络上运行可能很困难,要小心使用。

连续地执行ping命令只能由根用户来操作。

在这个例子中,1000个信息包发送了3秒。

要知道这个命令使用了IP和网络控制信息协议(ICMP),因而没有涉及到任何传输协议(UDP/TCP)和应用程序。

测到的数据,比如往返的时间,不会影响到总体的性能特征。

如果您试图发送大量的信息包到您的目的地址,就要考虑如下几点:

*发送信息包对您的系统来说,增加了负载。

*使用netstat-i命令可以在试验过程中监测您的网络接口的状态。

通过查看Oerrs的输出您可以发现系统在发送中在删除信息包。

*您也应该监控其他资源,比如mbuf和发送/接收队列。

很难在目标系统上增加一个大的负载。

或许在其他系统过载之前您的系统就过载了。

*考虑结果的相关性。

如果您想监控或测试的仅是一个目标系统,就在其他的一些系统上做同样的试验来进行比较,因为或许您的网络或是路由器出现了故障。

ftp命令

您可以使用ftp命令来发送一个非常大的文件,使用/dev/zero作为输入,/dev/null作为输出。

这样您就可以传输一个大文件,而不用考虑磁盘(可能是瓶颈问题),也不需要在内存中高速缓存整个文件。

使用下面的ftp子命令(改变count的值可以增加或是减少块的数量,块的数量可以通过dd命令读出):

>bin

>put"|ddif=/dev/zerobs=32kcount=10000"/dev/null

记住,如果您改变了TCP的发送或接收空间参数,对于ftp命令,您必须刷新inetd守护程序,使用refresh-sinetd命令就可以刷新。

要确保tcp_senspace和tcp_recvspace的值至少为65535(对于Gigabit以太网"jumboframes"和带有MTU9180的ATM来说),如果要获得更好的性能就需要更大的值,这是因为MTU的值也增加了。

下面举的是一个设置参数的例子:

#no-otcp_sendspace=65535

#no-otcp_recvspace=65535

#refresh-sinetd

#refresh-sinetd

0513-095刷新子系统的请求成功完成。

下面列出的是ftp子命令:

ftp>bin

200TypesettoI.

ftp>put"|ddif=/dev/zerobs=32kcount=10000"/dev/null

200PORTcommandsuccessful.

150Openingdataconnectionfor/dev/null.

10000+0recordsin

10000+0recordsout

226Transfercomplete.

327680000bytessentin8.932seconds(3.583e+04Kbytes/s)

local:

|ddif=/dev/zerobs=32kcount=10000remote:

/dev/null

ftp>quit

221Goodbye.

网络统计命令

netstat命令可以用来显示网络的状态。

按惯例来看,它是用来做故障识别而不是作为性能评定用的。

然而,netstat命令可以用来确定网络上的流量,从而可以确定性能故障是否是由于网络阻塞所引起。

netstat命令显示的是关于在配置的网络接口上的流量,如下面所示:

*和套接字有关的任何一个协议控制块的地址及所有套接字的状态

*收到、发送出去和在通信子系统中丢失的信息包数量

*每个接口的累计统计信息

*路由和它们的状态

使用netstat命令

netstat命令显示的是有效连接的各种网络相关的数据结构内容。

本章中只讨论和网络性能决定性相关的参数项和输出域。

对于其他所有的参数项和栏目,请参阅《AIX5LV5.2命令参考大全》。

netstat-i

显示的是所有配置接口的状态。

下面的例子显示的是一个带有集成以太网和Token-Ring适配器的工作站的统计信息:

#netstat-i

NameMtuNetworkAddressIpktsIerrsOpktsOerrsColl

lo016896144834014494600

lo016896127localhost144834014494600

tr0149210.0.5a.4f.3f.61658339024735500

tr014929.3.1ah6000d658339024735500

en015008.0.5a.d.a2.d50011200

en015001.2.31.2.3.40011200

count的值从系统启动开始进行汇总。

Name

接口名称。

Mtu

最大传输单元。

使用接口时可以传输的最大信息包大小,以字节为单位。

Ipkts

接收到信息包的总数量。

Ierrs

输入错误的总次数。

比如,畸形的信息包、校验和错误或是设备驱动程序中的缓冲空间不足。

Opkts

发送信息包的总数量。

Oerrs

输出错误的总数。

比如,主机连接的错误或是适配器输出队列超限。

Coll

检测到的信息包冲突的次数。

注:

netstat-i命令并不和以太网接口下的冲突次数相匹配(请参阅以太网统计资料的netstat命令)。

下面时一些调谐的准则:

*如果输入信息包中的错误次数比输出信息包总数的1%还要大(从netstat-i)命令可以看出,即是说,

Ierrs>0.01xIpkts

那么就运行netstat-m命令来检查存储器的不足。

*如果输出信息包中的错误次数比输出信息包总数的1%还要大(从netstat-i)命令可以看出,即是说,

Oerrs>0.01xOpkts

那么就为这个接口增加发送队列的大小(xmt_que_size)。

xmt_que_size的大小可以通过下面的命令来检查:

#lsattr-Eladapter

*如果冲突的比率比10%要大,即是,

Coll/Opkts>0.1

那么网络的使用率就比较高,这时或许就有必要重新组合或是分区。

使用netstat-v或者entstat命令可以确定冲突的比率。

netstat-i-Z

netstat命令对所有netstat-i命令的计数器进行清零。

netstat-Iinterfaceinterval

显示指定接口的统计信息。

对于一个指定的接口,它提供的信息和netstat-i命令类似,并按给定的时间间隔通报。

举例来说:

#netstat-Ien01

input(en0)outputinput(Total)output

packetserrspacketserrscollspacketserrspacketserrscolls

002700799655039066900

0000020000

0000010000

0000078025400

0000020006200

0010000200

上面的例子显示的是netstat-I命令的输出(对于ent0接口来说)。

依次生成了两个报告,一个是对指定接口,一个是对所有可用的接口(Total)。

这些域和netstat-i例子中的很相似,inputpackets=Ipkts,inputerrs=Ierrs,等等。

netstat-m

显示mbuf存储器管理程序所记录的统计信息。

在netstat-m命令的输出中最有用的统计信息就是显示被拒绝的mbuf请求的计数器和故障一列中的非零值。

如果没有显示被拒绝的mbuf请求,那么可以肯定SMP系统在运行4.3.2版本或是更晚版本的操作系统,为了性能方面的原因,缺省设定为关闭全局的统计信息。

要启用全局的统计信息,需要把no参数extended_netstats设定为1。

需要更改/etc/文件然后重启系统,就可以实现设定。

下面的例子显示的是netstat-m输出的第一部分,这是extended_netstats设定为1之后的情况:

#netstat-m

29mbufsinuse:

16mbufclusterpagesinuse

71Kbytesallocatedtombufs

0requestsformbufsdenied

0callstoprotocoldrainroutines

内核分配统计信息:

*******CPU0*******

Bysizeinusecallsfaileddelayedfreehiwatfreed

32419544702002218000

641732242400194000

12812137130001352004

256120111832623300239480138

51233067152400145054

10247492980600821252

204838418208840081255605

40965161158445004615021

8192956340011227

163841295300243041

327681100010230

Bytypeinusecallsfaileddelayedmemusememmaxmapb

Streamsmblkstatisticfailures:

0highprioritymblkfailures

0mediumprioritymblkfailures

0lowprioritymblkfailures

如果全局的统计信息没有处于打开状态,而您想确定被拒绝的mbuf请求的总数就可以每个CPU下面的failed列中的值相叠加。

如果netstat-m命令表明,向mbuf或群集器的请求失败或是被拒绝,这时您或许想增加thewall的值,这可以通过no-othewall=NewValue命令来实现。

要了解细节内容,请参阅『mbuf管理工具』,那里提到了有关thewall和maxmbuf的使用。

AIX4.3.3之后,就增加了delayed这个列。

如果对mbuf的请求指定了M_WAIT标记,那么如果没有可用的mbuf时,线程就会进入睡眠状态,直到有mbuf被释放,能够为这个线程所用。

这种情况下失效的计数器不会执行增一操作,但delayed列会执行增一操作。

在AIX4.3.3之前,失效的计数器也不能够进行增一,但那时没有delayed这一列。

而且,如果当前分配的网络存储器的大小是thewall的85%的范围内,您或许想要增加thewall的值。

如果thewall的值增加,就可以使用vmstat命令来监控存储器使用的总量,从而可以确定这个增加对总体的存储器性能是否具有负面影响。

如果接收到一个请求时没有可用的缓冲区,那么这个请求很可能会被删除(如果要查看适配器是否真的删除了包,请参阅『适配器统计信息』)。

记住一点,如果mbuf的请求方指定,在没有mbuf可以立即使用的情况下,它可以等待mbuf空闲。

这样就会使得请求方进入睡眠状态,但不会作为被拒绝的请求进行计数。

如果失效请求的数量持续增加,可能是因为系统出现了mbuf泄漏。

为了有助于跟踪故障,可以把no命令参数net_malloc_police设置为1,在使用trace命令时可以使用标识为254的跟踪hook。

分配一个mbuf或是群集器并锁定后,它可以被应用程序所释放。

并不是解除这个缓冲区的锁定,把它归还给系统,而是把它置放在一个基于缓冲区大小的自由列表中。

下一次再收到请求缓冲区时,就会把它从自由列表中去除,这样就避免了锁定的动作开销。

下一次再收到请求缓冲区时,就会把它从自由列表中去除,这样就避免了锁定的动作开销。

当自由列表的缓冲区总量达到了高限值之后,大小低于4096的缓冲区就会进行合并,组成页面大小的单元,这样就可以解除它们的锁定并归还给系统。

缓冲区归还给系统时,freed列就会进行增一操作。

如果freed的值持续增大,那么上限值就太低。

在AIX4.3.2和后来的系统中,高限值可以根据系统中的RAM数量进行比例缩放。

netstat-v

netstat-v命令显示的是正在运行的每一个基于通用数据链接接口设备驱动程序的统计信息。

至于特定于接口的报告,可以使用tokstat、entstat、fddistat或者是atmstat命令。

每个接口都有它自身的特定信息和一些通用信息。

下面的例子显示的是netstat-v命令的Token-Ring和以太网部分,其他的接口部分也是类似的。

对于不同的适配器而言,统计量会有所不同。

最重要的输出字段采用高亮显示。

#netstat-v

-------------------------------------------------------------

ETHERNETSTATISTICS(ent0):

DeviceType:

IBM10/100MbpsEthernetPCIAdapter(23100020)

HardwareAddress:

00:

60:

94:

e9:

29:

18

ElapsedTime:

9days19hours5minutes51seconds

TransmitStatistics:

ReceiveStatistics:

---------------------------------------

Packets:

0Packets:

0

Bytes:

0Bytes:

0

Interrupts:

0Interrupts:

0

TransmitErrors:

0ReceiveErrors:

0

PacketsDropped:

0PacketsDropped:

0

BadPackets:

0

MaxPacketsonS/WTransmitQueue:

0

S/WTransmitQueueOverflow:

0

CurrentS/W+H/WTransmitQueueLength:

0

BroadcastPackets:

0BroadcastPackets:

0

MulticastPackets:

0MulticastPackets:

0

NoCarrierSense:

0CRCErrors:

0

DMAUnderrun:

0DMAOverrun:

0

LostCTSErrors:

0AlignmentErrors:

0

MaxCollisionErrors:

0NoResourceErrors:

0

LateCollisionErrors:

0ReceiveCollisionErrors:

0

Deferred:

0PacketTooShortErrors:

0

SQETest:

0PacketTooLongErrors:

0

TimeoutErrors:

0PacketsDiscardedbyAdapter:

0

SingleCollisionCount:

0ReceiverStartCount:

0

MultipleCollisionCount:

0

CurrentHWTransmitQueueLength:

0

GeneralStatistics:

-------------------

NombufErrors:

0

AdapterResetCount:

0

DriverFlags:

UpBroadcastRunning

Simplex64BitSupportPrivateSegment

IBM10/100MbpsEthernetPCIAdapterSpecificStatistics:

------------------------------------------------

ChipVersion:

25

RJ45PortLinkStatus:

down

MediaSpeedSelected:

10MbpsHalfDuplex

MediaSpeedRunning:

Unknown

ReceivePoolBufferSize:

384

FreeReceivePoolBuffers:

128

NoReceivePoolBufferErrors:

0

InterPacketGap:

96

AdapterRestartsduetoIOCTLcommands:

0

PacketswithTransmitcollisions:

1collisions:

06collisions:

011collisions:

0

2collisions:

07collisions:

012collisions:

0

3collisions:

08collisions:

013collisions:

0

4collisions:

09collisions:

014collisions:

0

5collisions:

010collisions:

015collisions:

0

Excessivedeferralerrors:

0x0

-------------------------------------------------------------

TOKEN-RINGSTATISTICS(tok0):

DeviceType:

IBMPCITokenringAdapter(14103e00)

HardwareAddress:

00:

20:

35:

7a:

12:

8a

ElapsedTime:

29days18hours3minutes47seconds

TransmitStatistics:

ReceiveStatistics:

---------------------------------------

Packets:

1355364Packets:

55782254

Bytes:

791555422Bytes:

6679991641

Interrupts:

902315Interrupts:

55782192

TransmitErrors:

0ReceiveErrors:

1

PacketsDropped:

0PacketsDropped:

0

BadPackets:

0

MaxPacketsonS/WTransmitQueue:

182

S/WTransmitQueueOverflow:

42

CurrentS/W+H/WTransmitQueueLength:

0

BroadcastPackets:

18878BroadcastPackets:

54615793

MulticastPackets:

0MulticastPackets:

569

TimeoutErrors:

0ReceiveCongestionErrors:

0

CurrentSWTransmitQueueLength:

0

CurrentHWTransmitQueueLength:

0

GeneralStatistics:

-------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1