蓝色动力网络

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3007|回复: 0

关于网卡的接收/传送缓冲区引发无盘客户机无法启动问题

[复制链接]
发表于 2014-8-17 10:00:56 | 显示全部楼层 |阅读模式
前几天我们收到一例用户反馈,某苹果一体机的网咖,上座率稍微高一点的时候(>50台机器在线)就会出现win7无盘客户机开机卡在花瓣界面,无法继续进入系统!
经过无盘研发人员分析发现,是由于局域网内的广播包太多,而网卡的网络缓冲区太小,当客户机网卡接收到过多的垃圾广播包时,网卡处理不过来正常的网络请求,导致网络中断,最终出现问题现象!应该说这种情况并不多见,因此引发了我的一些好奇,这里和大家分享一下!
网络缓冲区相关的资料并不太多,在搜狗百科找到一些介绍,大家可以移步搜狗百科看下介绍:http://baike.sogou.com/v61975618.htm
根据搜狗百科介绍,网络缓冲区有3种模式:
动态分配方式:指在准备接收下一新帧时通过系统调用为接收描述符分配缓冲区。只有在需要缓冲区时才进行分配,优点:内存开销小;缺点:因需调用内核函数动态地分配内存,因此它CPU开销相对较大。(据说目前是主流方式)
预先分配方式:指在网络初始化时预先分配一定数量的缓冲块放入缓冲池中,准备接收下一新帧时,从缓冲池中为接收描述符分配缓冲区。优点:由于事先已分配好缓冲区,再进行缓冲区分配时只需进行指针的操作,因此它CPU开销小。缺点:需要在初始化时分配足够多的缓冲块,为帧的处置赢得足够的处置时间,未处理完前,保证它不会被新帧覆盖,因此,预先分配方式的内存开销大。
覆盖方式:指在接收帧时,不再为接收描述符分配缓冲区,而是将缓冲区的数据拷贝到另一内存空间等待处理,重复利用此描述符所指向的缓存区接收新帧。优点(自己总结):内存开销固定;缺点:因为数据需要比预先分配方式多一层调度,所以CPU开销方面会更大。
一知半解的了解了一些关于网络缓冲区的知识后,相信大家一定会有更多的疑问,比如说:哪种方式更好?怎么更改这些方式?网络缓冲区设置多大才好?这些方式是如何实现的?等等……但是目前,我还很难为大家解答这些疑惑,不过按照国际惯例来讲,要实现这些分配方式,至少要由网卡芯片+网卡驱动两者才能实现!
熟悉网卡一点的朋友一定在修改网卡参数时发现网卡参数里有:传输缓冲区/接收缓冲区,如下图:
ps:当然根据网卡品牌不同,叫法可能也会有点差异,大家就靠自己的“汉语”能力自己理解吧,如果是英文的那么就百度翻译一下!
与此同时,你可能还会注意到网卡参数里会有:中断节流,终端节流率,其实这2个参数也是会配合网络缓冲区一起工作的,当缓冲区饱和时,中断节流功能就会生效,临时停止接收数据,而所谓的中断节流率的概念就是节流的频率了,比如是一旦慢了就100%节流,还是选择性的节流,记得以前测试网卡的时候,将中断节流关闭过,发现测速会提升4~5MB/S,但是目前知道原理之后,可能这么做并不好,在网络内广播包比较多的时候,可能就会出现一些奇怪的问题现象!

除此之外,网络缓冲区的知识还包括接收区缓冲列队,以及流量控制,其实他们都是优化缓冲区不够时该如何去处理这些数据,突然发现网卡里面的参数真的是太多知识不懂,这里就随便分享一下,可能会有些错误,或者我个人理解出错,如果有更加了解这一块知识的同学,也欢迎大家分享出来,大家一起进步!
最后,给出一些结论性建议:
1、局域网内广播包过多的时候,可以适当增大接收缓冲区大小,不过最大不要超过1024;
2、缓冲区不是越大越好,所以没问题不要随意改动;
转载自:死性不改's Blog

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

蓝色动力网络微信平台
网站管理,业务合作联系邮箱: admin#lansedongli.com    QQ:13412492 限网站业务问题.
网站帐号、密码、密保找回请使用注册邮箱,发送邮件至 password#lansedongli.com ,否则不予受理.
免责声明:本论坛所有文字和图片仅代表其个人观点.
本站某些资料或文章来自于互联网,不代表本站观点,如果侵犯了您的权益,请来信告知,我们会在三天内删除.
为了给大家一个更好的交流场所,请勿在本论坛发表与中华人民共和国法律相抵触的言论,请合作,谢谢!
Copyright © 2007-2019 Corporation Powered by网吧系统 版权所有    转载请注明!
浙ICP备11043737号 程序:Discuz! x3.4

湘公网安备 43018102000145号

手机版|Archiver|蓝色动力网络   

快速回复 返回顶部 返回列表