【发布时间】:2014-03-18 03:55:03
【问题描述】:
memcached 是否能够充分利用多核?或者有什么办法调整这个?
【问题讨论】:
标签: memcached multicore parallel-processing
memcached 是否能够充分利用多核?或者有什么办法调整这个?
【问题讨论】:
标签: memcached multicore parallel-processing
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 内核,当然如果它是用相应的选项编译的。
【讨论】:
memcached 默认情况下是多线程的,并且在使许多内核饱和时没有问题。在更大规模的并行机器(例如 256 核 CMT 机器)上使所有内核饱和有点困难,因为将数据输入和输出网络变得更加困难。
如果您发现某种争用导致您无法使内核饱和,请提交错误或开始讨论。
【讨论】:
根据英特尔的this 研究,Memcached v.1.6 测试版无法在多核系统上很好地扩展。他们的实验表明,随着核心数量从 1 增加到 8,最大吞吐量(中位 RTT
【讨论】:
小心。这个术语相当混乱。 Memcached 手册页说 -t 选项仅适用于内核数量。但是,这很奇怪,因为线程和进程非常不同。线程与核心数量无关。进程绝对可以在多个内核上运行,而线程不能(除非它们调用操作系统例程,否则它们可以线程切换并打包超过 100% 的 cpu 使用率)。线程共享内存,仅依靠指令指针来区分谁是谁。除非提前明确声明为共享,否则进程不共享任何内容,并且共享是通过操作系统进行的。
总的来说,我希望 Memcached 人员更清楚地了解他们的应用是多处理还是多线程,因此它是否可以使用超过 100% 的 cpu。
【讨论】: