memcached能否充分利用多核?

问题描述 投票:0回答:4

memcached能够充分利用多核吗?或者有什么办法可以调整吗?

memcached multicore parallel-processing
4个回答
13
投票

memcached 有“-t”选项:

       -t <threads>
          Number of threads to use to process incoming requests. This option is only meaningful
          if memcached was compiled with thread support enabled. It is typically not useful  to
          set  this higher than the number of CPU cores on the memcached server. The default is
          4.

所以,我相信它可以使用你所有的CPU核心,当然如果它是用相应的选项编译的话。


6
投票

memcached 默认是多线程的,并且在多个核心饱和时没有问题。 在更大规模的并行设备(例如 256 核 CMT 设备)上让所有内核饱和有点困难,因为将数据传入和传出网络变得更加困难。

如果您发现某些区域存在某种争用,导致核心无法饱和,请提交错误或开始讨论。


4
投票

基于 Intel 的 this 研究,Memcached v.1.6 beta 无法在多核系统上很好地扩展。他们的实验表明,随着核心数量从 1 增加到 8,最大吞吐量(中值 RTT < 1ms SLA) only doubles.


0
投票

小心。 这个术语相当混乱。 Memcached 手册页显示 -t 选项仅适用于核心数量。 然而,这很奇怪,因为线程和进程非常不同。 线程与核心数量无关。 进程绝对可以在多个 Cor 上运行,而线程则不能(除非它们调用操作系统例程,然后它们可以进行线程切换并占用超过 100% 的 CPU 使用率)。 线程共享内存,仅依靠指令指针来区分谁是谁。 除非提前明确声明为共享,否则进程不会共享任何内容,并且共享是通过操作系统进行的。

总的来说,我希望 Memcached 人员更清楚地了解他们的应用程序是多处理还是多线程,以及它是否可以使用超过 100% 的 cpu。

© www.soinside.com 2019 - 2024. All rights reserved.