Unix系统资源管理(5)-网络性能

 网络性能

1、  网络性能监控:

有时系统网络会成为系统运行的瓶颈,比如可能出现很大的丢包率、很大的冲突率、很大的错误重传率等。当这些问题大规模爆发时,对系统的性能和服务响应是致命的伤害。因此要使系统稳定运行,就必须对网络的运行状态给与关注。

UnixLinux系统中可以通过netstat –s命令来监控网络运行状态,在使用这个命令的同时还可以加上-p参数,来对个别协议进行过滤。如下所示将列出TCP协议的运行状态:

netstat –s –p tcp 不同的系统输出结果会有所不同,排除问题时关注点也会稍有不同,因此在使用时应该很好的阅读用户手册,但是通常在输出结果中要关注以下几项:“重发数据包的数量(retransmitted)”、“重复接收数据包数量(duplicated acks)”、“端口关闭后受到数据包的数目(packets received after close)”如果这些参数值过高达到整个网络流量的一定百分比,则表明协议传输出现了问题。

一般情况下网络性能取决于几个组成部分能否正确高效的工作,这些部分包括:网络设备(适配器、交换机、路由器、集线器等)、网络接口、网络带宽。要使网络性能达到高效,就要在前期规划中认真选择和正确配置这些设备。另外还要随时监控主机的负载,如果主服务器出现了过载那么势必造成系统资源不足,这肯定会影响网路性能,出现这种情况就要分析,如果负载增加无法避免,那么就要考虑升级或增加主机。

2、  调优TCP操作性能:

         大部分的网络传输操作都是基于TCP协议,因此提升TCP协议的操作性能,对提升网络性能具有积极意义。TCP操作由大量参数来控制,很多参数不能随便修改。但是有两个参数在大多数UnixLinux系统中可以调整,而且调整这两个参数也能够带来事倍功半的效果。

         .最大尺寸段(MSS):这个参数决定了TCP协议在网络中传输“数据包”的最大尺寸。对于给定流量的网络,较大的数据包意味着较小的传输次数。对于最常见的以太网,通常MSS1460

         .套接字缓冲区大小:数据在使用TCP在网络上传输时,首先会把数据存放进缓冲区内。在缓冲区内将根据需要对数据进行分包以便发送。当缓冲区满时、应用程序必须等待整个缓冲区内的数据发送完毕,并在允许排队额外数据前受到应答。在较快的网络上,更大的缓冲区能够提高应用程序的性能。但是每个缓冲区都会占用系统内存,因此系统必须有足够的内存。

        以下是主要的UnixLinux系统调整这两个参数的命令:

        AIXno –o tcp_sendspace=value   调整TCP传输缓冲区大小默认16K/每进程

              no –o tcp_recvspace=value   调整TCP接收缓冲区大小默认16K/每进程

              no –o tcp_mssdflt=value     调整MSS大小(默认512B

 HP-UNIX: ndd –set /dev/tcp tcp_recv_hiwater_def value  调整TCP接收缓冲区大小(默认32K/每进程)

          ndd –set /dev/tcp tcp_xmit_hiwater_def value  调整TCP传输缓冲区大小(默认32K/每进程)

          ndd –set /dev/tcp tcp_mss_def value  调整MSS大小(默认536B

          也可以通过修改系统配置文件:/etc/rc.config.d/nddconf来完成

 FreeBSDsysctl net.inet.tcp.sendspace=value  调整TCP传输缓冲区大小默认32K/每进程

          sysctl net.inet.tcp.recvspace=value   调整TCP接收缓冲区大小默认64K/每进程

          sysctl net.inet.tcp.mssdflt=value     调整MSS大小(默认512B

          也可以通过修改系统配置文件:/etc/sysctl.conf来完成

Linux(内核版本2.4): echo “value” > /proc/sys/net/core/rmem_max  最大的TCP数据接收缓冲

                  echo “value” > /proc/sys/net/core/rmem_default  TCP数据接收缓冲缺省值

                  echo “value” > /proc/sys/net/core/rmem_min  最小的TCP数据接收缓冲

                 

                  echo “value” > /proc/sys/net/core/wmem_max  最大的TCP数据发送缓冲

                  echo “value” > /proc/sys/net/core/wmem_default  TCP数据发送缓冲缺省值

                  echo “value” > /proc/sys/net/core/wmem_min    最小的TCP数据发送缓冲

也可以通过修改/proc/sys/net/ipv4文件中的tcp_rmemtcp_wmem参数来实现上述修改。

echo “value” /proc/sys/net/ipv4/tcp_timestamps 时间戳在(请参考RFC 1323)TCP的包头增加12个字节,通常设置为0

echo “value” /proc/sys/net/ipv4/tcp_sack 有选择的应答,通常设置为0

echo “value”  /proc/sys/net/ipv4/tcp_window_scaling支持更大的TCP窗口. 如果TCP窗口最大超过65535 (64K), 必须设置该数值为1

   Linux中不支持对MSS的设置,因此无法调整TCPMSS

3、  NFS性能:

网络文件系统NFS,是Unix系统非常重要的服务,因此监测和调整NFS服务性能也是非常重要的。可以通过nfsstat- rc命令来监测NFS相关的网络性能和流量。这个命令的输出比较庞杂,但是主需要关注的是如下两个参数:

.timeouts:由于服务器没有及时响应而导致操作失败,应该重复进行这种操作。

.badxids:因重新发送操作而收到的重复响应。

        如果这些值达到一定大小,则可能出现NFS瓶颈。如果badxids值在timeouts值的6-7倍以内,则远程NFS服务器响应率是客户机性能问题的原因所在。如果timeouts值多于badxids值,则是一般的网络阻塞问题。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值