《2022年AIX网络性能优化 .pdf》由会员分享,可在线阅读,更多相关《2022年AIX网络性能优化 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、AIX 网络性能优化简介在 AIX 中,网络性能的优化可从以下几方面进行:网络内存(network memory)的调整.socket 缓冲区(socket buffer)的调整.网络接口(network interface)参数的调整.网络适配器(network adapter)上发送/接收队列的调整.名字解析(name resolution)的查找顺序。1网络内存的调整:AIX 中参数thewall 的值限定了系统中最多有多少物理内存可被网络缓冲区使用。但在AIX5L中 thewall 的值是无法修改的,是在系统启动时就确定的:32-位核心 thewall 取值为1/2 物理内存与 1GB
2、 中的最小值,即最大为1GB。64-位核心 thewall 取值为1/2 物理内存与 65GB 中的最小值,即最大为65GB。如果netstat m 命令结果显示缺少mbuf-“rewuests for mbufs denied”的值非 0。#netstat-m 2434 mbufs in use:2432 mbuf cluster pages in use 10336 Kbytes allocated to mbufs 0 requests for mbufs denied 0 calls to protocol drain routines 0 sockets not created be
3、cause sockthresh was reached Kernel malloc statistics:*CPU 0*By size inuse calls failed delayed free hiwat freed 32 172 426280 0 0 84 1440 0 64 84 2418 0 0 44 720 0 128 103 881463 0 0 313 360 17。使用下述方法之一调整网络内存:a.如果是 32 位核心,并且内存小于2GB,增大系统内存。b.如果是 64 位核心,并且内存小于65GB,增大系统内存。c.如果可能,将32 位核心改成64 位核心,增大系统内存
4、。d.检查 socket 的发送/接收缓存区的大小,以确定是否可将其减小。e.是否有 mbuf 的泄漏现象。2.socket 缓冲区(socket buffer)的调整:TCP Socket 的发送缓冲区(send buffer)是用于暂时存放应用的数据的区域。缓冲区的大小是由no 参数tcp_sendspace 来定义的,在用户应用中使用系统调用setsockopt()可以覆盖此参数的定义。为了保证使网络的吞吐量的平稳,常规将 tcp_sendspace 值设成 MTU 的 10倍以上。使用netstat i 可以查出每一网络接口的MTU 值:$netstat-i Name MtuNetwo
5、rk Address Ipkts Ierrs Opkts Oerrs Coll 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -en0 1500 link#2 0.2.55.4f.4.bf 378329 0 411094 0 0 en0 1500 9.181.48.64 atstrs 378329 0 411094 0 0 lo0 16896 link#1 375205 0 375243 0 0 lo0 16896 127 loopback 375205 0 375243 0 0 lo0 16896:1 375205 0 375243 0 0 Tcp scoket 的接
6、收缓冲区(receive buffer)是用于接收来自于网络上的数据的区域,收到数据包后要给发送方回送确认信息(ACK),同时告诉发送方本地的接收缓冲区中还有多少空间,若没有足够的空间存放新数据,则发送方就暂停发送新数据,直到接收方能再接收为止。接收缓冲区的大小由tcp_recvspace 设定,常规将tcp_recvspace 值设成 MTU 的 10 倍以上。可根据应用的需要来调整此参数。对于 socket buffer 还有udp_sendspace,udp_recvspace 这两个参数,用于 UDP 协议。由于没有流量控制功能,udp_recvspace 太小会引起数据包的丢失。系
7、统 中tcp_sendspace,tcp_recvspace 的 缺 省 值 是16384,udp_sendspace 是9216,udp_recvspace 是 41600。注意:系统中全部scoket 所用的内存不能大于sb_max 所设定的值。查看当前tcp_sendspace 和 tcp_revcspace 的值:$no o tcp_sendspace$no o tcp_revcspace 设置socket buffer 的值,直到下次重启:$no o tcp_sendspace=32768$no o tcp_recvspace=32768 设置socket buffer 的值,下次重
8、启仍有效:$no r o tcp_sendspace=32768$no r o tcp_recvspace=32768 3网络接口(network interface)参数的调整在 AIX5 以前,网络参数的定义在整个系统范围内有效,所有网络接口使用统一的定义,无法为特定的网络接口单独设定值。在 AIX5 中 TCP socket 的 发送/接收缓冲区的尺寸、rfc1323(调整窗口值)、tcp_mssdflt(调整 maximum transmission size)和 tcp_nodelay(是否立刻转发数据包)网络参数可在网络接口上进行定义。在接口上定义的值覆盖系统上统一定义的值,应用中
9、setsockopt()系统调用设定的值也能覆盖系统的统一定义。在为特定的网络接口调整参数时,要将isno(Interface Specific Network Options)设为 1:#no r o isno=1 a.若只是临时修改,可用ifconfig 命令:#ifconfig en0 ip_lable tcp_recvspace 65536 tcp_sendspace 65536.b.使用 chdev 命令来修改参数,如:#chdev l en0 a tcp_recvspace=65536 a tcp_space=65536 会修改 ODM 中的内容,所以在重新开机后参数也会生效。名师
10、资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -4网络适配器(network adapter)发送/接收队列的调整如果适配器的传输队列不够大的话,在netstat v 的结果中“S/W Transmit Queue Overflow”的值为非0。如果接收资源不足,则“Packets Dropped”或“Out of Rcv Buffers”或“No Resource Errors”就会出现非0 的值。使用chdev 或 smit 来调整相应队列的值,如:#chdev-l entx-a tx_que_sz=16384 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -