
linux默认会起n个ksofttrip进程,n等于cpu的个数,ksofttrip是死循环,只要有软中断,它就会一直去获取,n个ksoftrip获取源是一样的,为什么要起n个进程呢?就是为了 ,当某个cpu空闲,哪个就去跑。通常 *** 作系统里它的进程名是 ksoftrip/n ,n是对应的cpu的编号,ksoft进程跟cpu是一对一绑定的。
现在来说说网卡的性能问题,要想优化,首先你的网卡必须是多通道队列的。那如何知道你的网卡是否是多队列的呢? 通过cat /proc/interrept |grep eth0|wc -l 可以看到网卡通道队列的数量.
现在来来说说优化方案,为什么要优化,因为linux默认情况所有的网卡的软中断都是的cpu0,所以加入你的ksoftrip/0总是跑满,就说明可能是网卡问题了。
方案1 ,SMP IRQ affinity技术
说白了,就是信号量分布技术,把特定信号量的处理放到固定的cpu上,每个网卡的通道队列都有一个自己的信号量。
首先查看所有网卡通道队列的信号量,方法 cat/proc/interrept |grep eth0
每行最开头的数字“n:”就是信号量,在/proc/irq/下面可以找到对应的以信号量命名的目录
找完了之后,可以进行信号量绑定了,在/proc/irq/n/下面有两个文件,分别是smp_affinity跟smp_affinity_list, 这两个是文件的内容是对应的,smp_affinity里是通过bitmask算法绑定cpu,smp_affinity_list是通过数字指定cpu编号的方法,例如 cpu0,文件里就是“0”,如果是cpu1跟2就是“1,2”
!!重点来了,虽然默认里面填写的是多个,但是!!!但是它只跑在绑定cpu中的第一个!!!坑啊!!!
所以,你要做的就是单独绑定每一个网卡的通道队列。
直接echo "1" >/proc/irq/ (cpu1的信号量)/snmp_affinity_list
echo "3" >/proc/irq/$(cpu2的信号量)/snmp_affinity_list
这个是最快速的解决方案,提升效率显著啊!!!
升级方案2,在方案1基础之上,RPS/RFS技术
此技术大家可以查网上,文章很多,优化效果是,单个网卡通道队列的软中断会平均到所有cpu上,并且会优化为,中断落在发出中断的程序所在的那个cpu上,这样节省了cpu cache。
坏消息是对单队列网卡而言,「smp_affinity」和「smp_affinity_list」配置多CPU无效。
好消息是Linux支持RPS,通俗点来说就是在软件层面模拟实现硬件的多队列网卡功能。
首先看看如何配置RPS,如果CPU个数是 8 个的话,可以设置成 ff:
shell>echo ff >/sys/class/net/eth0/queues/rx-0/rps_cpus
接着配置内核参数rps_sock_flow_entries(官方文档推荐设置: 32768):
shell>sysctl net.core.rps_sock_flow_entries=32768
最后配置rps_flow_cnt,单队列网卡的话设置成rps_sock_flow_entries即可:
echo 32768 >/sys/class/net/eth0/queues/rx-0/rps_flow_cnt
说明:如果是多队列网卡,那么就按照队列数量设置成 rps_sock_flow_entries / N 。
回复15# hanool bonding多块性能也很一般的。有几个原因:1.bonding模式有多种,负载均衡的是应该还需要交换机的配合。2.bonding这个驱动在内核里面无法并行手法数据处理,TCP乱序问题处理也不够理想。3.9块1G的网卡,那么楼主搭配的CPU也需要对应加强。大部分网络数据处理需要消耗大量的CPU资源.推荐方案:10G网卡+多队列+至强8核16线程CPU。关键是这个多队列对系统负载减少很多。 查看原帖>>ens33为自动备援模式,名称定为ens33。
网卡的编号存在一定的规则,网卡的代号与网卡的来源有关。Linux继承了Unix以网络为核心的设计思想,为一个性能稳定的多用户网络 *** 作系统。
1、eno1:代表由主板bios内置的网卡。
2、ens1:代表有主板bios内置的PCI-E网卡。
3、enp2s0: PCI-E独立网卡。
4、eth0:如果以上都不使用,则回到默认的网卡名。
Linux *** 作系统诞生于1991年10月5日。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
扩展资料:
物理层具体实现无线电信号的接收与发射,它与无线网卡硬件中的扩频通信机相对应。物理层提供空闲信道估计CCA信息给MAC层,以便决定是否可以发送信号,通过MAC层的控制来实现无线网络的CSMA/CA协议。
无线网卡用于连接无线网络,就是利用无线电波作为信息传输的媒介构成的无线局域网,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份,只可惜速度太慢。
无线网卡标准:
1、IEEE802.11a:使用5GHz频段,传输速度54Mbps,与802.11b不兼容。
2、IEEE 802.11b :使用2.4GHz频段,传输速度11Mbps。
3、IEEE802.11g:使用2.4GHz频段,传输速度54Mbps,可向下兼容802.11b。
4、IEEE802.11n(Draft 2.0) :用于Intel新的迅驰2笔记本和高端路由上,可向下兼容,传输速度300Mbps。
参考资料来源:百度百科-网卡
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)