Chinaunix首页 | 论坛 | 博客
  • 博客访问: 972815
  • 博文数量: 584
  • 博客积分: 2293
  • 博客等级: 大尉
  • 技术积分: 3045
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 11:15
文章分类

全部博文(584)

文章存档

2012年(532)

2011年(47)

2009年(5)

我的朋友

分类: 系统运维

2011-11-26 11:22:53


前几天有反映AIX上网络有定时的刷arp情况,于是查了查AIX系统对于arp的处理,没直接解决问题,但总结了一下AIX上arp相关的一些知识。

ARP的普及知识就不讲了,AIX上对于ARP cache的调整通过 no 和 netstat工具来完成。下面就介绍AIX中与ARP table相关的可调整设置。

AIX系统arp表由一系列的buckets组成,这个buckets的数目通过arptab_nb参数定义,默认为149个。

每个bucket储存多少条arp cache条目由arptab_bsiz参数定义,默认为7个。

根据上面所述,默认设置下,AIX系统的主机arp cache table最多可以包含149*7=1043个条目。

当AIX主机需要与多于1043台机器通讯时,由于arp table容量不足,一条新的ARP解析结果出来后,需要先删除掉一条或数条旧的arp cache才能写入新主机的arp条目,如果刚删除的条目很快又被用到,则再次重复这一过程,这就会造成arp cache table的波动,从而对性能造成负面影响。

而上述的新主机arp解析过程,正常的通讯数据包需要等待ARP解析过程完成,它们就必须在一个队列中等待,假如这个队列满了,则数据包就会丢掉。这个队列的长度就是由arpqsize参数所决定的,默认值为12,即可以支持12个数据包排队等待。

到目前为止,提到了arpqsize, arptab_bsiz,和 arptab_nb三个参数,这三个参数可以通过no命令修改,并且必须重启系统后生效。

而正常情况下,一条arp cache条目没有被新条目“挤”出arp table时,它也有一个生存时间,这个时间由参数arpt_killc决定,该参数的单位是分钟,默认值为20,即一个缓存条目在arp table里的最长存在时间是20分钟,然后就被删除。可以根据实际情况调整arp cache的时长,这个调整是即时生效的,不需要重启系统。

总结

AIX系统中与arp cache相关的参数有如下4个:

  • arptab_bsiz = 7(每bucket中条目数量,与arptab_nb 参数共同决定arp table大小,重启生效)
  • arptab_nb = 149(bucket数量,与arptab_bsiz 参数共同决定arp table大小,重启生效)
  • arpqsize = 12 (arp请求完成前,等待队列中的数据包数,重启生效)
  • arpt_killc = 20 (arp条目生存时间,即时生效)

如何确定系统中当前ARP cache table有多大:可以使用 arp -a命令显示所有条目

显示统计以判断arp table是否足够大:

# netstat -p arp arp: 6 packets sent 0 packets purged

如果purged条目计数过多,且在不断增长,则可以考虑增加arp cache table的大小了。

阅读(3656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~