您的位置:首页 > 理论基础 > 计算机网络

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

2009-05-22 11:30 309 查看
网络性能

1、 网络性能监控:

有时系统网络会成为系统运行的瓶颈,比如可能出现很大的丢包率、很大的冲突率、很大的错误重传率等。当这些问题大规模爆发时,对系统的性能和服务响应是致命的伤害。因此要使系统稳定运行,就必须对网络的运行状态给与关注。
在Unix和Linux系统中可以通过netstat –s命令来监控网络运行状态,在使用这个命令的同时还可以加上-p参数,来对个别协议进行过滤。如下所示将列出TCP协议的运行状态:
netstat –s –p tcp 不同的系统输出结果会有所不同,排除问题时关注点也会稍有不同,因此在使用时应该很好的阅读用户手册,但是通常在输出结果中要关注以下几项:“重发数据包的数量(retransmitted)”、“重复接收数据包数量(duplicated acks)”、“端口关闭后受到数据包的数目(packets received after close)”如果这些参数值过高达到整个网络流量的一定百分比,则表明协议传输出现了问题。
一般情况下网络性能取决于几个组成部分能否正确高效的工作,这些部分包括:网络设备(适配器、交换机、路由器、集线器等)、网络接口、网络带宽。要使网络性能达到高效,就要在前期规划中认真选择和正确配置这些设备。另外还要随时监控主机的负载,如果主服务器出现了过载那么势必造成系统资源不足,这肯定会影响网路性能,出现这种情况就要分析,如果负载增加无法避免,那么就要考虑升级或增加主机。
2、 调优TCP操作性能:
大部分的网络传输操作都是基于TCP协议,因此提升TCP协议的操作性能,对提升网络性能具有积极意义。TCP操作由大量参数来控制,很多参数不能随便修改。但是有两个参数在大多数Unix和Linux系统中可以调整,而且调整这两个参数也能够带来事倍功半的效果。
.最大尺寸段(MSS):这个参数决定了TCP协议在网络中传输“数据包”的最大尺寸。对于给定流量的网络,较大的数据包意味着较小的传输次数。对于最常见的以太网,通常MSS为1460。
.套接字缓冲区大小:数据在使用TCP在网络上传输时,首先会把数据存放进缓冲区内。在缓冲区内将根据需要对数据进行分包以便发送。当缓冲区满时、应用程序必须等待整个缓冲区内的数据发送完毕,并在允许排队额外数据前受到应答。在较快的网络上,更大的缓冲区能够提高应用程序的性能。但是每个缓冲区都会占用系统内存,因此系统必须有足够的内存。
以下是主要的Unix和Linux系统调整这两个参数的命令:
AIX:no –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来完成
FreeBSD:sysctl 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_rmem和tcp_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的设置,因此无法调整TCP的MSS。
3、 NFS性能:
网络文件系统NFS,是Unix系统非常重要的服务,因此监测和调整NFS服务性能也是非常重要的。可以通过nfsstat- rc命令来监测NFS相关的网络性能和流量。这个命令的输出比较庞杂,但是主需要关注的是如下两个参数:
.timeouts:由于服务器没有及时响应而导致操作失败,应该重复进行这种操作。
.badxids:因重新发送操作而收到的重复响应。
如果这些值达到一定大小,则可能出现NFS瓶颈。如果badxids值在timeouts值的6-7倍以内,则远程NFS服务器响应率是客户机性能问题的原因所在。如果timeouts值多于badxids值,则是一般的网络阻塞问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: