Linux网络服务优化
2012-04-27 15:20
274 查看
Linux网络服务参数配置说明及实战 http://blog.csdn.net/kthq/article/details/6174077
Linux服务器的优化: http://www.cnblogs.com/derekchen/archive/2012/04/04/2432072.html
udp丢包 又是udp丢包处理: http://www.cnweblog.com/fly2700/archive/2011/09/19/317825.html
linux kernel tcp拥塞处理:
1. linux kernel tcp拥塞处理之cubic算法 http://www.pagefault.info/?p=145
2. 网络拥塞控制(九) CUBIC: http://www.haogongju.net/art/791906
3. linux网络拥塞系列文章:http://www.cnblogs.com/fll/category/136411.html
4. 高速网络中TCP 拥塞控制算法的研究: http://2.dx1.elecfans.com/l/elecfans.com_%B8%DF%CB%D9%CD%F8%C2%E7%D6%D0TCP%D3%B5%C8%FB%BF%D8%D6%C6%CB%E3%B7%A8%B5%C4%D1%D0%BE%BF.pdf
5. TCP优化指导 : http://csbison.iteye.com/blog/483066
中美之间的线路质量不是很好,rtt较长且时常丢包。TCP协议是成也丢包,败也丢包;TCP的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使TCP传输速度大幅下降。HTTP协议在传输层使用的是TCP协议,所以网页下载的速度就取决于TCP单线程下载的速度(因为网页就是单线程下载的)。
丢包使得TCP传输速度大幅下降的主要原因是丢包重传机制,控制这一机制的就是TCP拥塞控制算法。
Linux内核中提供了若干套TCP拥塞控制算法,已加载进内核的可以通过内核参数net.ipv4.tcp_available_congestion_control看到:
sudo sysctl net.ipv4.tcp_available_congestion_control
没有加载进内核的一般是编译成了模块,可以用modprobe加载。
这些算法各自适用于不同的环境。
reno是最基本的拥塞控制算法,也是TCP协议的实验原型。
bic适用于rtt较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法。
cubic是修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法。
hybla适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
多人实验表明,TCP拥塞控制算法对TCP传输速率的影响可很大。
UDP本来就不受丢包影响,所以不存在TCP的这样丢包导致的拥塞问题。
网络性能
网络间的通信都必定存在网络延迟,并非每个TCP/IP请求都可以马上通过网络进行传输。因此当应用要求通过网络进行TCP/IP访问时,Linux内核会将这些访问请求及其数据存放到系统缓存中,缓存的计算方法如下:
1、通过ping得到目标系统的time值,如15ms
2、假设千兆网卡,连接速度为1000(mebibits)/8bit = 125(MiB)
3、计算:total buffers = Bandwidth * Delay time
代入数据: 125(MiB)* 0.015(s)= 1.875 (MiB) = 1966080 (Bytes)
通常建议网络中存储缓存最小值,默认值与当前计算的Total buffers相等,最大值为total beffuers的1.5倍,
UDP优化参数
修改文件/etc/sysctl.conf,加入以下几行:
net.ipv4.udp_rmem_min = 1966080
net.core.rmem_default = 1966080
net.core.rmem_max = 2949120
net.ipv4.udp_wmem_min = 1966080
net.core.wmem_default = 1966080
net.core.wmem_max = 2949120
TCP参数优化
修改文件/etc/sysctl.conf,加入以下几行:
net.ipv4.tcp_rmem = 1966080 1966080 2949120
net.ipv4.tcp_wmem = 1966080 1966080 2949120
Linux服务器的优化: http://www.cnblogs.com/derekchen/archive/2012/04/04/2432072.html
udp丢包 又是udp丢包处理: http://www.cnweblog.com/fly2700/archive/2011/09/19/317825.html
linux kernel tcp拥塞处理:
1. linux kernel tcp拥塞处理之cubic算法 http://www.pagefault.info/?p=145
2. 网络拥塞控制(九) CUBIC: http://www.haogongju.net/art/791906
3. linux网络拥塞系列文章:http://www.cnblogs.com/fll/category/136411.html
4. 高速网络中TCP 拥塞控制算法的研究: http://2.dx1.elecfans.com/l/elecfans.com_%B8%DF%CB%D9%CD%F8%C2%E7%D6%D0TCP%D3%B5%C8%FB%BF%D8%D6%C6%CB%E3%B7%A8%B5%C4%D1%D0%BE%BF.pdf
5. TCP优化指导 : http://csbison.iteye.com/blog/483066
中美之间的线路质量不是很好,rtt较长且时常丢包。TCP协议是成也丢包,败也丢包;TCP的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使TCP传输速度大幅下降。HTTP协议在传输层使用的是TCP协议,所以网页下载的速度就取决于TCP单线程下载的速度(因为网页就是单线程下载的)。
丢包使得TCP传输速度大幅下降的主要原因是丢包重传机制,控制这一机制的就是TCP拥塞控制算法。
Linux内核中提供了若干套TCP拥塞控制算法,已加载进内核的可以通过内核参数net.ipv4.tcp_available_congestion_control看到:
sudo sysctl net.ipv4.tcp_available_congestion_control
没有加载进内核的一般是编译成了模块,可以用modprobe加载。
这些算法各自适用于不同的环境。
reno是最基本的拥塞控制算法,也是TCP协议的实验原型。
bic适用于rtt较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法。
cubic是修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法。
hybla适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
多人实验表明,TCP拥塞控制算法对TCP传输速率的影响可很大。
UDP本来就不受丢包影响,所以不存在TCP的这样丢包导致的拥塞问题。
网络性能
网络间的通信都必定存在网络延迟,并非每个TCP/IP请求都可以马上通过网络进行传输。因此当应用要求通过网络进行TCP/IP访问时,Linux内核会将这些访问请求及其数据存放到系统缓存中,缓存的计算方法如下:
1、通过ping得到目标系统的time值,如15ms
2、假设千兆网卡,连接速度为1000(mebibits)/8bit = 125(MiB)
3、计算:total buffers = Bandwidth * Delay time
代入数据: 125(MiB)* 0.015(s)= 1.875 (MiB) = 1966080 (Bytes)
通常建议网络中存储缓存最小值,默认值与当前计算的Total buffers相等,最大值为total beffuers的1.5倍,
UDP优化参数
修改文件/etc/sysctl.conf,加入以下几行:
net.ipv4.udp_rmem_min = 1966080
net.core.rmem_default = 1966080
net.core.rmem_max = 2949120
net.ipv4.udp_wmem_min = 1966080
net.core.wmem_default = 1966080
net.core.wmem_max = 2949120
TCP参数优化
修改文件/etc/sysctl.conf,加入以下几行:
net.ipv4.tcp_rmem = 1966080 1966080 2949120
net.ipv4.tcp_wmem = 1966080 1966080 2949120
相关文章推荐
- Linux Network Tuning Linux网络环境性能优化调整
- [RHEL5企业级Linux服务攻略]--第10季 网络访问Telnet/SSH全功略
- Linux 下使用 TCP 封装器来加强网络服务安全的技巧
- linux笔记之网络服务
- Linux网络服务和网络配置文件以及IP地址相关的解释
- Linux网络服务配置文件详解
- Linux网络服务_高速缓存
- Linux网络服务--LAMP+Nginx+Squid搭建web服务器
- Linuxext -> Linux网络服务 -> Linux下解决大量的TIME_WAIT
- Linux环境下网络共享USB设备服务配置
- Linux网络服务配置详解
- 在Linux下使用TCP封装器来加强网络服务安全
- Linux实战教学笔记22:企业级NFS网络文件共享服务
- linux系统之网络防火墙(firewalld服务和iptables服务)
- Linux网络服务_主从DNS配置示例_Redhat Enterprise 5.9
- Linux下服务管理和网络的配置
- Linux网络服务:Samba服务与实现
- Linux 网络及服务
- LINUX 下的网络服务配置