




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AIX 5L 网络性能优化 : 第 3 部分引言虽然运行诸如 netstat 之类的命令可以提供一些有用的信息,但有时您仍然需要深入到数据包级别上进行更进一步的分析。在这种情况下,可以使用各种跟踪工具。本文将描述这些实用工具,包括 iptrace、ipreport 和 tcpdump。本文还将向您介绍如何使用像 no 这样的工具来优化网络。虽然 no 命令与 vmo 和 ioo 很类似,但 no 是面向网络的版本。本文重点关注于 tcp 工作负载优化、udp 工作负载优化,以及 no 实用工具所提供的一些其他值得关注的参数。本文还将讨论 ARP 缓存优化,以及如何监视和优化 ARP 统计信息。您还将了解名称解析,以及如何通过对解析主机名的方式进行少量的调整,以简单地提高性能。监视网络数据包在这个部分中,您将了解一些相关工具的概述,这些工具可以帮助您监视网络数据包。这些工具允许您快速地对性能问题进行故障排除,并获取相关的数据以便进行历史趋势的研究和分析。第 1 部分介绍了一些非常基本的标志,如 -in,这是 netstat 的一个常用标志。使用 netstat,您还可以监视有关数据包本身的、更为详细的信息。例如,-D 选项将显示您的通信子系统所接收的、传输的和丢弃的数据包的总数。可以按设备、驱动程序和协议来对结果进行排序(请参见清单 1)。清单 1. 带 -D 选项的 netstatrootlpar37p682e/home netstat -DSource Ipkts Opkts Idrops Odrops-ent_dev0 238122150 1805 0 0ent_dev1 17583646 301547 0 0 -Devices Total 255705796 303352 0 0-ent_dd0 238122150 1805 0 0ent_dd1 17583646 301547 0 0 -Drivers Total 255705796 303352 0 0-ent_dmx0 238011223 N/A 110927 N/Aent_dmx1 17466977 N/A 116669 N/A -Demuxer Total 255478200 N/A 227596 N/A-IP 238073400 301739 2392 1691IPv6 0 0 0 0TCP 7373 296758 93 0UDP 238063379 4677 238055978 0 -Protocols Total 476144152 603174 238058463 1691-en_if1 17466977 301547 0 0en_if0 238011223 1805 0 0lo_if0 609 619 10 0 -Net IF Total 255478809 303971 10 0另一个有用的标志是 -s,它将显示所使用的全部协议的详细统计信息(包括发送的、接收的和丢弃的数据包)。如果您只希望查看 tcp 协议的相关信息,那么您还可以使用 -p 标志(请参见清单 2)。清单 2. 带 -p 选项的 netstatrootlpar37p682e/home netstat -p tcptcp: 297240 packets sent 284116 data packets (18296667 bytes) 0 data packets (0 bytes) retransmitted 316 ack-only packets (119 delayed) 0 URG only packets 0 window probe packets 38 window update packets 12770 control packets 0 large sends 0 bytes sent using largesend 0 bytes is the biggest largesend 7675 packets received 6277 acks (for 18288752 bytes) 133 duplicate acks 0 acks for unsent data 1864 packets (141133 bytes) received in-sequence 92 completely duplicate packets (91 bytes) 0 old duplicate packets实际上,有许多种不同的使用 netstat 的方式,而在刚开始学习的时候,最好是查看手册(man)页面,然后按照其中的方法进行执行。不要害怕运行这些命令,因为它们并不会耗尽磁盘空间、或者影响性能。可以使用 AIX 中提供的各种跟踪工具来记录有关数据包的详细信息。在使用它们时请多加小心。当您尝试确定导致网络性能问题的根本原因时,这些工具将会非常有帮助。首先介绍一下 iptrace 和 ipreport。iptrace 命令记录从网络接口接收到的所有数据包。ipreport 命令将 iptrace 生成的数据格式化到一个可读的跟踪报告中。而且,您还可以使用 ipfilter 对 ipreport 所创建的输出文件进行排序。尝试启动跟踪,并让它工作一分钟(请参见清单 3)。清单 3. 启动跟踪rootlpar37p682e/etc /usr/sbin/iptrace -a -i en0 iptrace.out &1 737520rootlpar37p682e/etc 7742521 + Done /usr/sbin/iptrace -a -i en0 iptrace.out &rootlpar37p682e/etc ps -ef | grep iptrace root 205030 749602 0 10:57:32 pts/0 0:00 grep iptrace root 774252 1 2 10:57:25 - 0:00 /usr/sbin/iptrace -a -i en0 iptrace.outWhen you are done with the trace, you need to kill the process:rootlpar37p682e/etc kill -1 774252rootlpar37p682e/etc iptrace: unload success!rootlpar37p682e/etc ipreport -r -s iptrace.out /workNow, examine the output. rootlpar37p682e/ more workIPTRACE version: 2.0ETH: =( 114 bytes transmitted on interface en0 )= 10:57:25.698790226ETH: da:bb:b8:b5:26:14 - 6e:87:76:59:6e:cd type 800 (IP)IP: (lpar37p682e)IP: IP: ip_v=4, ip_hl=20, ip_tos=16, ip_len=100, ip_id=18349, ip_off=0 DFIP: ip_ttl=60, ip_sum=945f, ip_p = 6 (TCP)TCP: TCP: th_seq=337783617, th_ack=1783353394TCP: th_off=8, flagsTCP: th_win=65522, th_sum=0, th_urp=0TCP: nopTCP: nopTCP: timestamps TSVal: 0x47414604 TSEcho: 0x47826117TCP: 00000000 520bea13 dfaefa7b e1c517d6 ce86f960 |R.|TCP: 00000010 fdb24d69 947c8d48 fa7b6379 235d1a63 |.Mi.|.H.cy#.c|TCP: 00000020 840adfc2 e1b4b916 e1002983 f96fc1fb |.).o.|清单 3 显示了所捕获的、有关每个数据包的信息,包括数据包的大小和 IP 地址信息。正如您可以想象到的,这个跟踪文件可能会迅速地变得很大。示例文件在不到一分钟的时间内就增长到了 40 MB!在运行这些跟踪的时候,一定要非常小心,因为如果您没有足够的磁盘空间用于这些文件,那么将会迅速地耗尽磁盘空间。您还可以使用系统资源控制器 (SRC) 来启动跟踪。请参见清单 4。清单 4. 使用 SRC 启动跟踪# startsrc -s iptrace -a -i en1 /home/testing/iptrace/iptracelogStopping it is easy;# stopsrc -s iptracetcpdump 的情况又如何呢?tcpdump 可以输出为每个 NIC 捕获的数据包的 Header。tcpdump 的一个重要区别是,与 iptrace 不同,它一次只能查看一个网络接口。而且,因为 iptrace 将检查来自内核空间的完整的数据包,所以其结果可能导致丢弃大量的数据包。使用 tcpdump,您还可以限制要跟踪的数据的总量。另外,您不需要使用 ipreport 类型的命令来格式化二进制的数据,因为 tcpdump 将进行跟踪并产生格式化的输出。清单 5 给出了一个示例。清单 5. 使用 tcpdumprootlpar37p682e/ rootlpar37p682e/ tcpdump -w tcp.outtcpdump: listening on en0, link-type 1, capture size 96 bytestcpdump 将持续地捕获数据包,直到您键入 Ctrl+C 为止。如果由于缓冲区空间不足而丢弃了任何数据包,那么它也会作出相应的报告。清单 6 显示了当您结束示例跟踪时所看到的内容。清单 6. 跟踪结束14755 packets received by filter0 packets dropped by kernel13:40:28.001711 IP lpar37p682e.ssh 6.53736: P 374368029:374368077(48) ack 3207376412 win 65522 13:40:28.001765 IP lpar37p682e.ssh 6.53736: P 48:96(48) ack 1 win 65522 13:40:28.001872 IP lpar37p682e.ssh 6.53736: P 96:144(48) ack 1 win 65522 13:40:28.001925 IP lpar37p682e.ssh 6.53736: P 144:192(48) ack 1 win 65522 P 400:448(48) ack 1 win 65522 13:40:28.066856 IP 6.53736 lpar37p682e.ssh: . ack 448 win 32761 13:40:28.149698 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.150470 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.151257 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.151954 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.152756 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.153449 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.154251 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.154950 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC13:40:28.155754 IP 3.cognex-insight 55.silhouette: isakmp: phase 2/others ? #64EC上面的输出说明,内核并没有丢弃任何数据包,这是很好的情况。优化网络性能在这个部分中,您将了解如何使用 no 命令来优化您的网络子系统。您还将了解可能影响网络性能的一些其他方面,并且您将了解在适当情况下的建议优化方法。no 命令是优化网络参数的最重要的命令。首先,使用 -a 标志查看所有的参数(请参见清单 7)。清单 7. 查看参数rootlpar37p682e/ no -a arpqsize = 12 arpt_killc = 20 arptab_bsiz = 7 arptab_nb = 149 bcastping = 0 clean_partial_conns = 0 delayack = 0 delayackports = dgd_packets_lost = 3 dgd_ping_time = 5 dgd_retry_time = 5 directed_broadcast = 0 extendednetstats = 0 fasttimo = 200 icmp6_errmsg_rate = 10 icmpaddressmask = 0ie5_old_multicast_mapping = 0 ifsize = 256 inet_stack_size = 16 ip6_defttl = 64 ip6_prune = 1 ip6forwarding = 0 ip6srcrouteforward = 1 ip_ifdelete_notify = 0 ip_nfrag = 200 ipforwarding = 0 ipfragttl = 2 ipignoreredirects = 0 ipqmaxlen = 100 ipsendredirects = 1 ipsrcrouteforward = 1 ipsrcrouterecv = 0 ipsrcroutesend = 1 llsleep_timeout = 3 lo_perf = 1 lowthresh = 90 main_if6 = 0 main_site6 = 0 maxnip6q = 20 maxttl = 255 medthresh = 95 mpr_policy = 1 multi_homed = 1 nbc_limit = 262144 nbc_max_cache = 131072 nbc_min_cache = 1 nbc_ofile_hashsz = 12841 nbc_pseg = 0 nbc_pseg_limit = 524288 ndd_event_name = all ndd_event_tracing = 0 ndp_mmaxtries = 3 ndp_umaxtries = 3 ndpqsize = 50 ndpt_down = 3 ndpt_keep = 120 ndpt_probe = 5 ndpt_reachable = 30 ndpt_retrans = 1 net_buf_size = all net_buf_type = all net_malloc_police = 0 nonlocsrcroute = 0 nstrpush = 8 passive_dgd = 0 pmtu_default_age = 10 pmtu_expire = 10 pmtu_rediscover_interval = 30 psebufcalls = 20 psecache = 1 pseintrstack = 24576 psetimers = 20 rfc1122addrchk = 0 rfc1323 = 0 rfc2414 = 1 route_expire = 1 routerevalidate = 0 rto_high = 64 rto_length = 13 rto_limit = 7 rto_low = 1 sack = 0 sb_max = 1048576 send_file_duration = 300 site6_index = 0 sockthresh = 85 sodebug = 0 sodebug_env = 0 somaxconn = 1024 strctlsz = 1024 strmsgsz = 0 strthresh = 85 strturncnt = 15 subnetsarelocal = 1 tcp_bad_port_limit = 0 tcp_ecn = 0 tcp_ephemeral_high = 65535 tcp_ephemeral_low = 32768 tcp_finwait2 = 1200 tcp_icmpsecure = 0 tcp_init_window = 0 tcp_inpcb_hashtab_siz = 24499 tcp_keepcnt = 8 tcp_keepidle = 14400 tcp_keepinit = 150 tcp_keepintvl = 150 tcp_limited_transmit = 1 tcp_low_rto = 0 tcp_maxburst = 0 tcp_mssdflt = 1460 tcp_nagle_limit = 65535 tcp_nagleoverride = 0 tcp_ndebug = 100 tcp_newreno = 1 tcp_nodelayack = 0 tcp_pmtu_discover = 1 tcp_recvspace = 16384 tcp_sendspace = 16384 tcp_tcpsecure = 0 tcp_timewait = 1 tcp_ttl = 60 tcprexmtthresh = 3 thewall = 1048576 timer_wheel_tick = 0 udp_bad_port_limit = 0 udp_ephemeral_high = 65535 udp_ephemeral_low = 32768 udp_inpcb_hashtab_siz = 24499 udp_pmtu_discover = 1 udp_recvspace = 42080 udp_sendspace = 9216 udp_ttl = 30 udpcksum = 1 use_isno = 1 use_sndbufpool = 1或者,您还可以使用 -L 标志,它将提供更加详细的信息。清单 8 仅给出了开头的几行。清单 8. 使用 -L 标志rootlpar37p682e/ no -L | moreGeneral Network Parameters-NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES-extendednetstats 0 0 0 0 1 boolean R-fasttimo 200 200 200 50 200 millisecond D-inet_stack_size 16 16 16 1 32K-1 kbyte R这里给出了许多的参数。让我们来了解一下其中最值得关注的内容。在旧版本的 AIX 中,thewall 是一个需要更改其缺省值的、重要的可调参数。这个参数定义了网络内核缓冲区的上限。现在,根据 RAM 总量和内核类型,在安装时定义其大小。例如,如果您在 64 位内核中运行 AIX 5.3,那么将该参数设置为实际内存大小的一半。清单 9. 设置 thewall 参数的大小rootlpar37p682e/ vmstat 1System configuration: lcpu=2 mem=2048MB ent=0.20# no -a | grep thewall thewall = 1048576第 1 部分介绍了 mbufs,但这里我们又要再次提到它,因为它与 thewall 非常相关。请记住,mbufs 用于在内核中为传入和传出的通信存储数据。这正是为什么确定合适的 mbufs 总量极其重要的原因。maxmbuf 可调参数的值用于限制通信系统所使用的内存量。如果该值为 0,那么将使用 thewall 可调参数,并且不能修改其缺省值。更改这个可调参数,是降低 thewall 限制的一种方法。作为缺省值,如果 maxmbuf 为 0,那么无论 thewall 使用什么都将使用这个值。netstat -m 用于检测失败的网络内存请求(请参见清单 10)。清单 10. 带 -m 选项的 netstatrootlpar37p682e/etc/tunables netstat -mKernel malloc statistics:* CPU 0 *By size inuse calls failed delayed free hiwat freed32 117 217 0 0 11 5240 064 109 6523 0 1 83 5240 0128 975 15951 0 29 785 2620 0256 520 67637 0 30 1016 5240 0Streams mblk statistic failures:0 high priority mblk failures0 medium priority mblk failures0 low priority mblk failures在这个示例中,没有出现任何内存不足(失败)。尽管您可以使用 no 实用工具更改许多参数,但大多数参数最好还是不要修改。最重要的参数是那些涉及到 TCP 流工作负载优化的参数。 tcp_sendspace控制内核中用于缓冲应用程序数据的缓冲区空间大小。您可能希望使其超过缺省值,因为如果达到了限制值,发送应用程序则将挂起数据传输,直到 TCP 将数据发送到缓冲区为止。 tcp_receivespace除了控制接收缓冲区所消耗的缓冲区空间总量之外,AIX 还使用这个值来确定其传输窗口的大小。 udp_sendspace对于 UDP,您可以将这个参数设置为不超过 65536 的值,因为每个 IP 数据包的上限为 65536 个字节。 udp_resvspace 这个值应该大于 udp_sendpsace,因为它需要处理每套接字的、尽可能多的同步 UDP 数据包。可以简单地将这个参数设置为 udp_sendspace 值的 10 倍。 现在,进行一些更改。首先,增加 udp_sendspace 的大小(请参见清单 11)。清单 11. 增加 udp_sendspace 的大小rootlpar37p682e/ no -p -o udp_sendspace=65536Setting udp_sendspace to 65536Setting udp_sendspace to 65536 in nextboot file接下来,将 udp_recsvspace 更改为建议的配置,即 udp_sendspace 的 10 倍。请参见清单 12。清单 12. 更改 udp_recsvspace 的值rootlpar37p682e/ no -p -o udp_recvspace=655360Setting udp_recvspace to 655360Setting udp_recvspace to 655360 in nextboot fileChange to tunable udp_recvspace, will only be effective for future connectionsrootlpar37p682e/ 请注意,-p 标志可以保存相关的条目,即使是在重新启动之后它也是生效的。它将在 /etc/tunables/nextboot 文件中追加相应的节,如清单 13 所示。清单 13. 查看 /etc/tunables/nextbook 文件# tail /etc/tunables/nextbootno: udp_recvspace = 655360 udp_sendspace = 65536rootlpar37p682e/etc/tunables 对于速度更快的适配器的 tcp 参数,可以将 tcp_sendspace 设置为 tcp_recvspace 值的两倍。例如,您可以使用清单 14 中的设置。清单 14. tcp_sendspace 的示例设置tcp_receivespace = 262144tcp_sendspace= 524288其他一些的重要工作负载参数包括 rfc1323 和 sb_max。rfc1323 可调参数支持 TCP 窗口缩放选项,该选项允许 TCP 使用较大的窗口大小。开启这个选项,以支持最佳的 TCP 性能。sb_max 可调参数为排队等待单个套接字的套接字缓冲区数目设置上限,而这个上限可以控制缓冲区(排队等待发送者或者接收的套接字)所使用的缓冲区空间总量。这个总量通常应该小于 wall,并且近似于 tcp 或者 udp 发送和接收设置最大值的 4 倍。例如,如果您的 udp_recvspace 是 655360,那么将其加倍到 1310720 是没有问题的。现在来了解一下 tcp_nodelayack。这个可调参数提示 TCP 发送一个立即确认信息,而不是延迟确认信息。尽管这样做可能在某些环境中增加更多的开销,但是可以在其他的环境中极大地提高网络性能。如果您更改了这个参数却没有提高性能,那么您可以迅速地将它还原为先前的值。接下来了解一下 ipqmalen。这个可调参数用于控制 IP 输入队列的长度。如果您看到一个溢出计数器(通过使用 netstat -s),那么设置这个队列的最大长度可以帮助修复这种溢出情况。ARP 的情况又如何呢?当有许多客户端连接到系统时,您可能希望优化 ARP 缓存。您可以使用 netstat 来查看相关的统计信息(请参见清单 15)。清单 15. 使用带有 -p arp 的 netstatrootlpar37p682e/etc/tunables netstat -p arparp: 10 packets sent 0 packets purgedrootlpar37p682e/etc/tunables 如果您发现较高的清除计数,那么可以增大 ARP 表的大小。对于示例表来说,不需要这样做。下面是与 ARP 相关的 no 参数(请参见清单 16)。清单 16. 使用 no 参数rootlpar37p682e/etc/tunables no -a | grep arp arpqsize = 12 arpt_killc = 20 arptab_bsiz = 7 arptab_nb = 149您可以在系统范围内优化这些缓冲区、或者针对特定的接口优化这些缓冲区。要针对接口来进行优化,可以将 no 可调参数 isno 选项设置为 1,这是 AIX 5.3 的缺省值。清单 17. 将 no 可调参数 isno 选项设置为 1rootlpar37p682e/etc/tunables no -a | grep use use_isno = 1将禁用选项设置为 0,以此作为排序的诊断工具,以便在整个范围内设置值,从而帮助隔离性能问题。在为特定的接口设置这些值时,它们实际上将覆盖 no 视图中的缺省值,这有时会让系统管理员非常困惑。您可以使用 ifconfig 或者 lsattr 来查看特定接口的设置。在这个示例中,使用 ifconfig 查看设置(查看最后一行内容,它引用了先前提到过的一些可调参数)。清单 18. 使用 ifconfig 查看特定接口的设置rootlpar37p6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通银行2025玉林市笔试英文行测高频题含答案
- 农业银行2025三沙市秋招无领导模拟题角色攻略
- 2025年3D打印技术的快速成型工艺
- 邮储银行2025石家庄市秋招笔试专业知识题专练及答案
- 中国银行2025德阳市秋招英文面试题库及高分回答
- 中国银行2025汕头市秋招英文面试题库及高分回答
- 邮储银行2025白山市笔试行测高频题及答案
- 2025新兴技术对行业颠覆影响
- 工商银行2025临沂市秋招笔试性格测试题专练及答案
- 猎头服务合同2篇
- 妊娠期贫血的诊断及治疗
- 脊柱外科医生进修汇报
- 口腔正畸进修总结汇报
- 2025年学宪法、讲宪法题库(含答案)
- 骨科无痛病房护理课件
- 2025年国家司法考试《一卷》模拟题及答案(预测版)
- 机电设备安装安全管理体系及安全保证措施
- 2025年云南电路基础试题及答案
- 硫酸钙晶须对环氧树脂胶粘剂粘接强度和热性能的作用研究
- 心力衰竭生物标志物临床应用中国专家共识
- 金融科技对商业银行绩效影响研究-以XX银行为例
评论
0/150
提交评论