- 论坛徽章:
- 0
|
AIX系统NETWORK性能评估\r\n\r\n 1、ping命令查看网络的连通性\r\n\r\n 如果一旦发现网络发现问题,我们最常规的使用方法就是使用ping命令来检查网络的连通情况。\r\n\r\n# ping 10.33.102.107\r\nPING 10.33.102.107: (10.33.102.107): 56 data bytes\r\n64 bytes from 10.33.102.107: icmp_seq=0 ttl=255 time=4 ms\r\n64 bytes from 10.33.102.107: icmp_seq=1 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=2 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=3 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=4 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=5 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=6 ttl=255 time=0 ms\r\n64 bytes from 10.33.102.107: icmp_seq=7 ttl=255 time=0 ms\r\n^C\r\n----10.33.102.107 PING Statistics----\r\n8 packets transmitted, 8 packets received, 0% packet loss \r\n\r\n\r\n 上面的结果中,最后一行是一个总结,0% packet loss可以检查网络的质量,丢包率。从time=0 ms,我们也可以来判断这两台主机之间网络传送的延时情况。\r\n\r\n 2、netstat –i检查网络的接口\r\n\r\n 这个命令可以用来检查网络的接口情况。\r\n\r\n#netstat -i\r\nName Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll\r\nen0 1500 link#2 0.d.60.b.98.e2 5022475 0 4643590 0 0\r\nen0 1500 10.33.102.9 oracle1_boot 5022475 0 4643590 0 0\r\nen2 1500 link#3 0.d.60.b.96.78 4925323 0 4515364 0 0\r\nen2 1500 192.100.10 oracle1_stb 4925323 0 4515364 0 0\r\nen3 1500 link#4 0.2.55.cf.4d.b9 0 0 7 0 0\r\nen3 1500 10.0.2 oracle1 0 0 7 0 0\r\nlo0 16896 link#1 4789337 0 4791656 0 0\r\nlo0 16896 127 loopback 4789337 0 4791656 0 0\r\nlo0 16896 ::1 4789337 0 4791656 0 0 \r\n\r\n\r\n 对于上述的输出结果,说明如下:\r\n\r\n ¨ name 接口名称\r\n\r\n ¨ Mtu 最大传输单元,单位字节\r\n\r\n ¨ Ipkts 接收到的信息包总数量\r\n\r\n ¨ Ierrs 接收失败的包总数,比如,畸形的信息包、校验和错误或是设备驱动程序中的缓冲空间不足。\r\n\r\n ¨ Opkts 发送的信息包总数量\r\n\r\n ¨ Oerrs 发送失败的包总数,比如,主机连接错误或者适配器输出队列超限。\r\n\r\n ¨ Coll 检测到包冲突的次数\r\n\r\n 如果Ierrs/ Ipkts超过1%,就需要通过netstat –m来检查存储器的内存使用情况。\r\n\r\n 如果Oerrs/ Opkts超过1%,就需要为这个接口增加发送队列的大小(xmt_que_size),xmt_que_size的值可以通过下面的命令来检查:\r\n\r\n #lsattr –El adapter\r\n\r\n 如果Coll/Opkts超过10%,则网络的使用率比较高,有必要重新组合或是分区,使用netstat –v或者 enstat 命令可以确定冲突的比率。\r\n\r\n3、netstat –r检查主机的路由情况\r\n\r\n Netstat –r可以用来检查主机的路由情况。在这里,default表示的是默认路由。在很多网络不通的时候,我们可以首先检查路由表的情况,如果路由表不存在太多的问题,可以再使用traceroute命令来检查包的传送路径,从而定位网络问题。\r\n\r\n#netstat -r\r\nRouting tables\r\nDestination Gateway Flags Refs Use If Exp Groups \r\nRoute Tree for Protocol Family 2 (Internet):\r\ndefault 10.33.102.97 UG 316 597250728 en7 - - \r\n10.33.102.96 jsdxh_db_svc UHSb 0 0 en7 - - =>\r\n10.33.102.96/28 jsdxh_db_svc U 195 2288404800 en7 - - \r\njsdxh_db_svc loopback UGHS 0 635942 lo0 - - \r\n10.33.102.111 jsdxh_db_svc UHSb 0 261 en7 - - \r\n127/8 loopback U 44 8771083 lo0 - - \r\n192.168.0.0 jsdxh_db01_stby UHSb 0 0 en9 - - =>\r\n192.168.0/28 jsdxh_db01_stby U 2 3781828 en9 - - \r\njsdxh_db01_stby loopback UGHS 0 2463802 lo0 - - \r\n192.168.0.15 jsdxh_db01_stby UHSb 0 272 en9 - - \r\n\r\nRoute Tree for Protocol Family 24 (Internet v6):\r\n::1 ::1 UH 0 48 lo0 - - \r\n \r\n\r\n\r\n 关于输出结果的一点说明:\r\n\r\n Destination:表示路由的目的地。Default则表示该条路由位默认路由。在有些系统上,则使用0.0.0.0来表示默认路由。\r\n\r\n Gateway:网关\r\n\r\n Flag:flag的字段值比较多,不一一说明。这里的U表示up。G表示路由至网关。H表示路由至主机而不是网络。S表示手工添加。b表示该路由为广播地址。\r\n\r\n Refs:给出当前活动使用的路由数目。面向连接协议在连接持续时间内保留单独的路由,而无连接协议在发送给同一目标时获取路由。\r\n\r\n Use:提供使用该路由发送的信息包数目的计数。\r\n\r\n If:表示本路由利用的网络接口。其中lo0表示回环地址。En7表示以太网口7。\r\n\r\n Exp:该字段无效。\r\n\r\n Group:该字段无效。\r\n\r\n 下面是给出的一个traceroute示例:\r\n\r\n# traceroute 10.33.102.107\r\ntrying to get source for 10.33.102.107\r\nsource should be 10.33.102.105\r\ntraceroute to 10.33.102.107 (10.33.102.107) from 10.33.102.105 (10.33.102.105), 30 hops max\r\noutgoing MTU = 1500\r\n 1 oracle_svc (10.33.102.107) 1 ms 0 ms 0 ms \r\n\r\n\r\n Netstat命令的其他用法,简单介绍。\r\n\r\n Netstat –t命令可以用来检查外部链接的情况,在这里可以看到链路所使用协议,以及端口情况。\r\n\r\n# netstat -ta |grep –v loopback | more \r\nActive Internet connections (including servers)\r\nProto Recv-Q Send-Q Local Address Foreign Address (state)\r\ntcp4 0 0 *.daytime *.* LISTEN\r\ntcp 0 0 *.ftp *.* LISTEN\r\ntcp 0 0 *.telnet *.* LISTEN\r\ntcp4 0 0 *.smtp *.* LISTEN\r\ntcp4 0 0 *.time *.* LISTEN\r\ntcp4 0 0 *.sunrpc *.* LISTEN\r\ntcp4 0 0 *.smux *.* LISTEN\r\ntcp 0 0 *.exec *.* LISTEN\r\ntcp 0 0 *.login *.* LISTEN\r\ntcp 0 0 *.shell *.* LISTEN\r\ntcp4 0 0 *.rmc *.* LISTEN\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.37.131.7.iad1 ESTABLISHED\r\ntcp4 0 13 jsdxh_db_svc.ncube-lm 10.33.102.104.nicelink ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.cnrproto ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.lmsocial ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.34.131.74.prolink ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.icp ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.1124 ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.1125 ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.1126 ESTABLISHED\r\ntcp4 0 0 jsdxh_db_svc.ncube-lm 10.33.102.104.1127 ESTABLISHED \r\n\r\n 4、netpmon\r\n\r\n netpmon命令用于监控与网络有关的I/0及CPU的使用情况。\r\n\r\n 以root 身份运行下面的命令,可以找出进程使用的CPU时间,以及其中与网络有关的代码使用的CPU时间:\r\n\r\n # netpmon -o /tmp/netpmon.out -O cpu -v; sleep 30; trcstop\r\n\r\n 此命令运行30 秒钟,并在/tmp目录下生成文件 netpmon.out。其中字段 CPU Time 为进程使用CPU\r\n\r\n 的时间总值,CPU%对应其百分比,Network CPU% 为进程中与网络有关的代码所占用的CPU百分比。如下所示:\r\n\r\n# more /tmp/netpmon.out\r\nWed Aug 15 16:15:15 2007\r\nSystem: AIX oracle2 Node: 5 Machine: 005073CD4C00 \r\ntrace -a -T 256000 -o - -j 000,000,001,002,003,005,006,106,10C,139,134,135,100,200,102,103,101,104,465,467,46A,\r\n00A,256,255,262,26A,26B,32D,32E,2A7,2A8,351,352,320,321,30A,30B,330,331,334,335,2C3,2C4,2A4,2A5,2E6,2E7,2DA,2DB\r\n,2EA,2EB,252,216,211 \r\nTIME: 0.000000000 TRACE ON pid 1662992 tid 0x2a8015\r\nTIME: 30.002476450 TRACE OFF\r\nHook counts\r\n-----------------------------\r\n TrcOn: 1\r\n TrcOff: 1\r\n TrcHdr: 4\r\n TrcTWrap: 187\r\n Dispatch: 26204\r\n Idle: 46017\r\n Fork: 1\r\n Exec: 1\r\n Exit: 8\r\n Flih: 25479\r\n Resume: 82837\r\n Slih: 10655\r\n SlihRet: 10655\r\n SVCEnter: 321792\r\n SVCReturn: 321731\r\n Createthread: 1\r\n TrcUtil: 1001\r\n IfEn: 9257\r\n Socket: 113004\r\n\r\n968836 hooks processed (incl. 1194 utility)\r\n30.002 secs in measured interval\r\n\r\n========================================================================\r\n\r\nProcess CPU Usage Statistics:\r\n-----------------------------\r\n Network\r\nProcess PID CPU Time CPU % CPU %\r\n----------------------------------------------------------\r\noracle 1745142 1.1525 0.960 0.000\r\nUNKNOWN 2113548 0.6105 0.509 0.000\r\noracle 1196136 0.5308 0.442 0.009\r\noracle 843984 0.3940 0.328 0.007\r\noracle 1548420 0.3821 0.318 0.006\r\noracle 1171498 0.3382 0.282 0.006\r\noracle 1302590 0.3291 0.274 0.005\r\noracle 974996 0.3278 0.273 0.005\r\noracle 1507490 0.3224 0.269 0.005\r\noracle 1253426 0.3046 0.254 0.005\r\noracle 892972 0.2259 0.188 0.004\r\noracle 1327172 0.2098 0.175 0.003\r\noracle 1204434 0.1992 0.166 0.003\r\noracle 925944 0.1913 0.159 0.003\r\noracle 2023594 0.1903 0.159 0.003\r\noracle 483440 0.1849 0.154 0.003\r\noracle 458788 0.1749 0.146 0.003\r\noracle 1859812 0.1743 0.145 0.003\r\noracle 721084 0.1666 0.139 0.003\r\n \r\n\r\n 5、其他一些常用的命令\r\n\r\n Arp\r\n\r\n Route\r\n\r\n Ifconfig\r\n\r\n Nslookup等等。\r\n\r\n 这些命令,在这里不再一一介绍,有兴趣的可以查看相关资料。\r\n\r\n\r\n\r\n\r\naix route2007-11-21 16:00查看、配置路由列表,如查询命令为: \r\n#netstat -rn\r\n\r\nRouting tables\r\n Destination Gateway Flags Refs Use If PMTU Exp Groups\r\n Route Tree for Protocol Family 2 (Internet):\r\n default 10.0.100.250 UGc 0 0 en0 - - -\r\n 10.0.100.0 10.0.100.150 UHSb 0 0 en0 - - - =>\r\n 10.0.100/24 10.0.100.150 U 2 2 en0 - - -\r\n 10.0.100.255 10.0.100.150 UHSb 0 3 en0 - - -\r\n 127/8 127.0.0.1 U 0 353 lo0 - - - \r\n\r\n Route Tree for Protocol Family 24 (Internet v6):\r\n ::1 ::1 UH 0 0 lo0 16896 - -\r\n其中红色部分标明了默认路由,也就是网关地址。可以用如下命令来添加默认路由:\r\n\r\n#route add default 10.0.100.250 或者是\r\n\r\n#route add 0 10.0.100.250\r\n\r\n表示对没有特别指定,或者目标路径为0的地址,也就是所有地址,使用路由10.0.100.250,其实,这个IP地址也就是网关。但是,这样增加的路由只是增加在路由表中(动态路由),而不写在ODM库中,如果想写在ODM库中,可以简单的由\r\n\r\n#smit route 来完成,或者是类似的命令\r\n\r\n#chdev -l inet0 -a route=”net,-hopcount,0,,0,10.0.100.250″\r\n\r\n跟上面的意思一样,表示对目标地址0,将使用路由10.0.100.250,其实就是默认路由,这样增加的路由是静态路由。\r\n\r\n\r\n以下是增加动态路由与删除动态路由的一个例子,以下表示针对目标子网10.10.*.*/24,都使用路由10.0.100.251,其中/24是表示子网掩码\r\n\r\n#route add -net 10.10.0.0 -netmask 255.255.255.0 10.0.100.251\r\n\r\n可以从netstat -rn中看到如下的信息。\r\n\r\n10.10/24 10.0.100.251 UG 0 0 en4 - -\r\n如果想删除这个动态路由,可以用如下的命令\r\n\r\n#route delete 10.10.0.0 10.0.100.251\r\n\r\n\r\n以下是增加静态路由与删除静态路由的一个例子,这次我们不针对网段,只是针对主机10.10.10.100,使用路由10.0.100.251。\r\n\r\n#chdev -l inet0 -a route=”host,-hopcount,0,,,,,,10.10.10.100,10.0.100.251″\r\n\r\n在netstat -rn可以看到如下信息\r\n\r\n10.10.10.100 10.0.100.251 UGH 0 0 en4 - -\r\n我们也可以使用如下命令删除该静态路由\r\n\r\n#chdev -l inet0 -a delroute=”host,,10.10.10.100,10.0.100.251″\r\n\r\n\r\n如果你想清空所有的路由表,或者是刷新路由表,可以使用如下命令。注意,此命令仅仅是刷新(其实是清空)当前路由表,并不清空ODM库中的静态路由,所以,写在ODM库中的静态路由在重起后会继续生效。\r\n\r\n另外,不要轻易执行此命令,因为如果你是不同的网段连接到该机器,清空路由表可以立即断开你的网络连接。\r\n\r\n#route -f\r\n\r\ndefault 10.0.100.250 done\r\n dbtest loopback done\r\n#netstat -rn\r\n\r\nRouting tables\r\n Destination Gateway Flags Refs Use If Exp Groups\r\n\r\n Route Tree for Protocol Family 2 (Internet):\r\n 10.0.100.0 10.0.100.150 UHSb 0 0 en0 - - - =>\r\n 10.0.100/24 10.0.100.150 U 2 2 en0 - - -\r\n 10.0.100.255 10.0.100.150 UHSb 0 3 en0 - - -\r\n 127/8 127.0.0.1 U 0 353 lo0 - - - \r\n\r\n Route Tree for Protocol Family 24 (Internet v6):\r\n ::1 ::1 UH 0 0 lo0 - -\r\n\r\n正确的使用路由可以减少网络跳转,甚至大大提高网络的访问速度。\r\n\r\n\r\n\r\n\r\nentstat 命令 显示以太网设备驱动器和设备统计信息。 |
|