服务器TCP连接速度异常可以采用CDN解决吗?
发布时间:
作者:未知
服务器TCP连接速度异常可以采用CDN解决吗?剖析觉得SESU10母盘上核心TCP拥塞控制优化算法和Windows的Ack頻率操纵的对策存有兼容问题状况。现阶段最少确定 2.6.16内核版本存有此难题;打TCP提升补丁下载或是拆换Tlinux之后能够解决困难。难题状况:在体验网自然环境下检测:大压缩文件下载的状况下,百度搜索的网络速度均值在600KBPS,大家的网络速度均值小于100Kbps;掌趣Webgame状况下,TNT业务流程网络速度大概是DDT的25%。这儿是一个典型性的网络速度曲线图:大家的网络服务器的曲线图:(纵坐标企业:包/s)百度搜索的服务器下载的曲线图:再现该难题的接口测试:互联网: 企业体验网,一般中国联通4M ADSL网络服务器:Linux64位网络服务器, 深圳市主机房。
服务器程序: Apache,nws(自研webserver)手机客户端: Windows XP, Windows7,随意电脑浏览器或是飓风(并行处理免费下载)检测工具:wireshark, httpwatch检测联接:分别是建造CDN、百度下载、深圳市DC Apache问题分析:根据手机客户端抓包软件剖析发觉速率比较慢的段有两个难题:服务端一直直到前边的数据文件确定之后才推送第二个包Windows一直直到200ms上下才推送ACK确定。针对Windows端个人行为, 为了更好地避免ACK过多造成 互联网工作压力,Ms TCPtcp协议在每接到一个数据文件时,起动一个200ms计时器,直至接到别的数据文件或是计时器到期时才推送ACK包。根据设定注册表文件选择项 TcpAckFrequency 主要参数为1关掉 Ack delay之后,试验发觉网络速度恢复过来,没法再现下载速度慢的难题。由于没法强制性客户根据修改注册表防止难题,而且竞争者都没有见到相近难题,因而只有从linux端处理。Linux这一端,最先猜疑和nagle优化算法有关系,在nws网络服务器上设定TCP_NODELAY之后依然能够再现,能够清除Nagle优化算法的危害。 (事实上nws每一次推送大数据文件或是立即应用sendfile,不怎么会接到nagle优化算法危害) 次之Apache,nws都能够再现这个问题,较为猜疑电脑操作系统自身有缺陷。
由于每一次linux仅推送一个数据文件,因而猜疑时延对话框的难题,推断难题以下:原始状况下,手机客户端回应一个ACK时,时延对话框扩大,每一次推送好几个数据文件,因而一开始能够有迅速的传输速率;由于网络延迟颤动或网络丢包造成 网络服务器tcp协议判断数据文件请求超时,重设时延对话框为1,每一次仅推送一个数据文件,接到手机客户端200ms回包,时依然觉得请求超时,另外调节RTT;直至RTT扩大到200ms算不上请求超时才行,时延对话框得到扩张,能够推送好几个数据文件,传输速率变快,这般循环系统。根据检测扩大原始时延对话框为10 (拆换核心载入架平新技术性组的TCP提升控制模块完成),网络速度恢复过来。