Lucifer
发表于 2007-8-31 00:30:05
因该是panabit引擎的设计优势。但是关于多核的问题,我个人人为专用芯片是提高了专用协议的处理速度而已速度的优势的确很巨大。但是内核态处理网络是单线程的这个因该只是系统内核的问题。当然多核增加了处理的复杂度,比如调度和性能的协调优化的关系。
我觉得这里可以单独开发一个负责协调多核处理的内核来单独开发在这上边做数据包的传入然后在转入物理内核,由这个核心来处理多核的问题。
这样做必然增加一部分系统开销。但是性能因该还是会极大的提高。
突然想到可以利用虚拟技术实现。
比如在传统的处理方式中如果单台性能不足我们会做冗余,然后利用负载均衡来实现性能的提高。
如果虚拟多个panabit每个使用一个物理内核,通过一个借口查看当前的负载量,然后动态分配工作任务?
orz。。。。。。。这样就不用考虑过多的内核问题。这部分的开销对于当前的如此廉价的8核X86体系又算什么呢?????
我不知道panaOS你们准备怎么样实现。既然选择了X86体系就是因该做一个兼容性强的软件,如果利用简单的虚拟技术来实现的话我觉得对于未来的8核封装的处理器
也就是廉价的16核来说设计的复杂度明显降低,并且可以快速的兼容新的多核体系。
这是我的看法
panabit
发表于 2007-8-31 10:01:27
原帖由 netmaster 于 2007-8-30 23:38 发表 http://www.panabit.com/forum/images/common/back.gif
但据我所知,内核态处理网络是单线程的,因为考虑到互斥的问题内核数据包处理很难实现内核多线程,除非在调度机制上做改进,你们如果对数据包进行调度,应该考虑互斥的问题,以免乱序,但维护锁的过程可能对多 ...
这就是我们的优势所在,呵呵。
panabit
发表于 2007-8-31 10:03:02
原帖由 Lucifer 于 2007-8-31 00:30 发表 http://www.panabit.com/forum/images/common/back.gif
因该是panabit引擎的设计优势。但是关于多核的问题,我个人人为专用芯片是提高了专用协议的处理速度而已速度的优势的确很巨大。但是内核态处理网络是单线程的这个因该只是系统内核的问题。当然多核增加了处理的 ...
你已经说出了一些总体性的东西,剩下你需要考虑的就是实现细节了,呵呵,不错!
Lucifer
发表于 2007-8-31 10:52:26
……想到一起了吗?厄如果这样的话核越多性能叠增幅的比例就越大关键还是负责负载均衡的那个调度核心的性能了。。。。。。。。。
=O=算了这种编程不是我的强项不去研究了。
panabit
发表于 2007-8-31 12:26:40
原帖由 Lucifer 于 2007-8-31 10:52 发表 http://www.panabit.com/forum/images/common/back.gif
……想到一起了吗?厄如果这样的话核越多性能叠增幅的比例就越大关键还是负责负载均衡的那个调度核心的性能了。。。。。。。。。
=O=算了这种编程不是我的强项不去研究了。
对于多核,复杂均衡很关键,象Cavium这样的CHIP,有一个硬件单元做packet scheduling,但是对于x86,就需要使用
某个核做这个事情,因此这个核可能是一个“瓶颈”,这里的关键是,你的性能目标是多少。
为了提高性能,这个核应该尽可能做少一些事情,其代码路径要足够短并且代码足够集中(增加CACHE命中率)。
如果每个数据报的处理花800 cycles,那么一个2.0Ghz的核可以处理2.5Mpps,这完全是有可能的。
netmaster
发表于 2007-8-31 13:47:23
现在 PCI-E 理论上能满足多大包速率?
2.5Mpps 是指的 2.5M packets per secend 吗?
硬件是一方面,但我感觉软件的实践才是最关键的
Lucifer
发表于 2007-8-31 13:50:31
当然用一个核做调度的话我觉得还是很可行的,复杂度不是很高。而且3210的指标是2.13G主频。8M3级缓存。
一个单独的核心负责负载均衡还有包的调度我觉得至少能应付8核的情况。
但是未来的16核估计1年后实现2年后普及。这种情况下至少要双核负责调度。在这种情况下问题才开始复杂。不过那也是以后的事了
netmaster
发表于 2007-8-31 13:57:13
不知道现有的 OS 在多核调度处理上是怎样的?
panabit
发表于 2007-8-31 14:29:15
原帖由 netmaster 于 2007-8-31 13:47 发表 http://www.panabit.com/forum/images/common/back.gif
现在 PCI-E 理论上能满足多大包速率?
2.5Mpps 是指的 2.5M packets per secend 吗?
硬件是一方面,但我感觉软件的实践才是最关键的
PCI-E x16:
每个方向: 2G * 16 = 32Gbps
2.5Mpps = 2.5M packet per second.
panabit
发表于 2007-8-31 14:34:44
原帖由 netmaster 于 2007-8-31 13:57 发表 http://www.panabit.com/forum/images/common/back.gif
不知道现有的 OS 在多核调度处理上是怎样的?
MP一般有两种模式:
(1) SMP:对称式
(2) AMP:非对称式
对称式的特点是每个核可以尽最大的力量做事,但是当对CACHE利用不好时,会降低性能,特别是一个线程从一个核
switch到另外一个核时,会导致cache polution,因此性能降低。
AMP的特点是不同的核分工不一样,就像是一个流水线,每个核可能处理流水线的一部分工作,因每个环节很小,
所以icache和dcache的利用率也好一些。但是其性能是由最慢的环节决定的。
SMP一般会有锁,AMP如果分配得好,可以避免相邻环节之间的锁。
现在的系统性能往往不是由CPU的频率决定的,其关键是看CACHE的利用率和代码及数据的相关性。