iKuai爱快流控路由

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: fuzren
打印 上一主题 下一主题

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

[复制链接]
11#
发表于 2018-8-12 21:14:55 | 只看该作者
牛逼贴,跟踪一下。
12#
发表于 2018-8-13 04:14:33 | 只看该作者
我觉得这正常,一个稳定软件是不会把核心数全部用光的,我设置Oracle数据库集群RAC共4台,每台40线程,最多只敢每台机器分配60%的线程数也就是24线程,其余16线程要留给系统用的,否则反而会造成一些莫名其妙的卡顿和瓶颈。曾经我设置为80%线程,但出现了很多不稳定,所以我觉得这个系统要稳定的话,主业务顶多分配60%就是上限了,还有一些要分给系统和一些突发任务的。
13#
 楼主| 发表于 2018-8-13 11:02:46 来自手机访问 | 只看该作者
asdkfjaadsfadsf 发表于 2018-8-13 04:14
我觉得这正常,一个稳定软件是不会把核心数全部用光的,我设置Oracle数据库集群RAC共4台,每台40线程,最多 ...

同理只要核心不满载不就一样?核心满载跟核心使用是两回事,都满了是性能不足
14#
发表于 2018-8-13 11:09:45 | 只看该作者
明显是CPU缓存用完了 再多绑CPU也没效率了
15#
 楼主| 发表于 2018-8-13 11:44:11 | 只看该作者
从哪看出是缓存满了?
16#
发表于 2018-8-14 10:18:32 | 只看该作者
66666,这数量不少呢,估计官方没有考虑到这么多核的CPU有效利用吧!!
17#
发表于 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可以完整把内核用满。
18#
发表于 2018-8-25 14:45:11 | 只看该作者
最近看帖子感觉官方回避的问题越来越多了
19#
发表于 2018-8-25 15:44:26 | 只看该作者
wodexiaowei666 发表于 2018-8-25 14:45
最近看帖子感觉官方回避的问题越来越多了

有时候真搞不懂,很多问题都不在论坛里做个回复。跟小C还是小黑建议了。大部分都是说加bug追踪群处理,处理完的问题完全可以在论坛出个专门的帖子来更新,大家也可以去看看,遇到同类问题了的也可以自己就解决了,没有遇到的就可以顺带也可以了解一下,这也不是啥敏感或者涉及到爱快公司内部消息的话题。
20#
发表于 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)

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

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.3

© 2001-2024 Comsenz Inc.

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