iKuai爱快流控路由

 找回密码
 立即注册

QQ登录

只需一步,快速开始

爱快cpu核心没法充份使用,导致软路由网络卡顿,掉包延迟大

查看数: 22101 | 评论数: 31 | 收藏 7
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-8-12 15:39

正文摘要:

我软路由配置是e5-2660v2*2   40线程的处理, 64g 内存, 在线端数达4600,并发连接数达40万的时候,通过控制台看到很多核心都100%了,可这只使用到机器的28线程,剩余12线程完全是0负载的,可以通过以下图看到 ...

回复

sd607858 发表于 2018-8-25 19:30:22
本帖最后由 sd607858 于 2018-8-25 20:21 编辑

我很专业的回复你,你的所有网卡使用的队列没有超过28个,导致你的WAN口队列没有饱和。升级更好的网卡即可让全部甚至是双路2699 V4x2 88个框框全部生效
看看你的CPU怎么搭配网卡建议看看我写的帖子
http://bbs.ikuai8.com/thread-85627-1-1.html
你的帖子问题就是以上链接这篇第1.0.4条的搭配导致的
引用:
网卡型号         支持的最高CPU
inte 82574L                双核
intel 82540~3        单核双线程
intel 82576           8核心16线程
intel 82546            4核心8线程
intel 82580            4核心8线程
intel i350-T4         8核心16线程
intel 82599          64核心128线程
intel x710           128核心256线程
BCM5782                   单核
BCM5704              2核心4线程
BCM5709              4核心8线程
BCM5670              4核心8线程
BCM57810S        64核心128线程
BCM820xx          128核心256线程


(注意以上支持最高CPU为单口,T2后面的就要x2 T4就要x4,特殊比如i350-T4 4口就支持32个队列,而不是16x4.因为i350一个die包含2口)



40线程我看用2张 i350-T4就能跑满所有核心
而你搭配的是82571和82574L等【你截图只有一部分】
这网卡都不是和2011这一代配合的,型号太老,队列太少,所谓的卡顿很直接是网卡内部队列出现了排队现象,从而导致CPU一核有难,多核围观。
运用好多队列网卡,对2011 以及V2平台会有很大的性能提升。

怎么升级看这里:
支持2011平台新特性的网卡有:
i210 i218 i350 x520 x710
至于8257x,8258x,8259x都不支持2011的 英特尔®数据直接I/O技术(英特尔®DDIO
https://www.intel.cn/content/www ... chnology-brief.html
搭配建议
Lan口全部队列数之和(lan口总数越少越好)=单张Wan口队列数
比如 Lan口i350T4 x4(32x4)=Wan口82599(128)

asdkfjaadsfadsf 发表于 2018-8-22 03:50:23
fuzren 发表于 2018-8-13 11:02
同理只要核心不满载不就一样?核心满载跟核心使用是两回事,都满了是性能不足 ...

多线程的系统开发需要这几个东东:
任务执行单元(Worker):每个CPU逻辑内核分配一个线程用于执行任务,通常取60%-70%的核心数用来分配执行单元 ,如果核心数总数小于等于4核,有的软件是分配全部核心使用,有的服务端软件为了稳定只分配2-3个核心,至少留下一个核心使用。这部分单元在执行任务时是大量占用核心资源,而等待任务时就只使用少量核心资源;
任务分配单元(我忘了英文咋说了):如果是持续执行任务的话,需要10%-15%的核心数用来做任务调度单元,需要将任务拆解打包分给前面的任务执行单元,同时将任务执行结果打包反馈,这部分单元只有在拆解任务和结果打包反馈时才会占用一定量的核心资源,其余时间都是处于等待状态,;

有的系统做得细致的话,又将任务分配单元细化,分解任务的单元和打包任务的单元分开设计。

一个多进程任务的系统很难100%地把全部CPU核心做到恰好吃光的,即使超负荷任务也不行,设计师需要仔细调教有多少个核心来参与任务分解、打包,有多少个核心来参与任务执行,做到这几个单元一起协同工作,这就需要各种场景的算法支撑了。

简单的压缩解压缩场景下,也许半个到核心执行任务分解和打包就够了,其余30个全部参与计算;

而网络环境下怎么分解打包我不懂,但我知道这很复杂,复杂到仅靠简单一两套算法是不够的,能尽量充分利用核心数来实现最大负载而不浪费资源,各家网络公司都有各自的专利,而路由系统索要的首先是稳定,然后才是负载,我想为了这个目的,设计师还是会浪费掉一些核心来达成稳定性的,至于浪费多少,就看该公司的技术功底了。从第一台多路CPU的电脑出现开始至今,有一点是无法打破的,越复杂的任务,越难把内核数量和资源吃光,吃得多的都是牛X大神,也只有像WinRAR这种简单场景可以把所有内核用光。


前面我说的Oracle的资源分配实际是一个经验值,60%也许不是最好,但是相对稳定的,为了提升性能将其分配到70%也可以,但实际使用场景下一是很少有用满这70%的,二是Oracle里任务调度分解使用的核心数也不会少,它是满足多用户使用的前提,具体问题具体分析,你的路由器资源分配在网络层面上我不懂,我只是从我了解的多CPU任务系统开发环境上给出看法,建议都算不上,因为这里头要估算的核心数分配在各个场景下完全不同。


另外一点我看了截图,总消耗大约在50%上下,估摸着应该是默认的开启超线程技术(Hyper Threading)。40个CPU就是40个物理内核,而是把20个物理内核资源用自己的技术提供出40个逻辑内核,Intel这么设计实际就是为了多内核任务调度做优化的考量,因为许多场景下任务调度和计算很少能出现持续把某个内核全部吃光的,偶尔会出现一下峰值可以忽略,当然如果时纯计算场景,比如计算超大质因数,这时候把超线程关掉反而更快,因为这种场景纯粹就是算,关掉HT可以完整把内核用满。
zhoujian0502 发表于 2020-7-11 17:18:33
这个帖子的 查看每个cpu的使用率是怎么调出这个画面的呢。 谢谢
高利伟 发表于 2020-7-9 13:02:54
我有6条1000兆宽带给出租屋用户每户200兆宽带。PPPoE拨号上网。我用什么网卡怎么设置求推荐
dutian_007 发表于 2020-3-17 22:02:08
sd607858 发表于 2018-8-25 19:30
我很专业的回复你,你的所有网卡使用的队列没有超过28个,导致你的WAN口队列没有饱和。升级更好的网卡即可 ...

这个英特尔的数据直接IO技术,能蝗升多高的性能
ivi001 发表于 2018-10-28 15:08:07
fuzren 发表于 2018-10-26 13:15
我这里对接了14个光猫的,不可能用万兆做wan口,要配vlan 宽带太多了,3块i350 t4的可以吧?另外想问下,我之前 ...

万兆+VLAN不就解决了??
chumu1990 发表于 2018-10-27 08:57:38
fuzren 发表于 2018-10-26 13:15
我这里对接了14个光猫的,不可能用万兆做wan口,要配vlan 宽带太多了,3块i350 t4的可以吧?另外想问下,我之前 ...

那个网卡不是跟蝶舞一个样的网卡吗
maotouxiaozi 发表于 2018-10-26 15:16:51
markmarkmark
wxz8506 发表于 2018-10-26 13:21:49
大神贴,值得关注一下。
fuzren 发表于 2018-10-26 13:15:16
本帖最后由 fuzren 于 2018-10-26 13:19 编辑
sd607858 发表于 2018-10-25 17:13
万兆做WAN口的话,你的CPU就能全部利用了

我这里对接了14个光猫的,不可能用万兆做wan口,要配vlan 宽带太多了,3块i350 t4的可以吧?另外想问下,我之前买过几块 Winyaod的i350 t4的网卡 pci-e的,用着用着网卡速率就自动掉到10M了..要重起服务器才能恢复,有遇到过这样的情况吗?
sd607858 发表于 2018-10-25 17:13:24
fuzren 发表于 2018-10-24 03:50
你好啊,看到你这个回复我才想到跟网卡有关,但是我wan口是3张千兆4口的Intel Corporation 82571EB Gigab ...

万兆做WAN口的话,你的CPU就能全部利用了
关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|论坛规章制度|iKuai Inc. ( 京ICP备13042604号 )

GMT+8, 2024-9-25 17:22

Powered by Discuz! X3.3

© 2001-2024 Comsenz Inc.

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