【问题标题】:Cache miss under heavy load in memcachedmemcached 中重负载下的缓存未命中
【发布时间】:2023-03-22 21:57:01
【问题描述】:

我在 php 5.2 中使用 memcached。上周,我们对我们的网站进行了负载测试,并发生了一个奇怪的问题。我有一个特定的密钥,它在请求中被访问了多次(比如 10-15 次)。在正常站点负载下,它总是会导致命中。

当我们增加负载时,它突然开始丢失(对于一个 8 CPU 机器,平均负载在 30 左右)。每次负载增加时都会发生,负载恢复正常时会停止,并且仅针对此键发生。

以前有没有其他人遇到过这个问题?有解决办法吗?

谢谢

【问题讨论】:

  • 增加为 memcache 提供的内存量(在其配置中)。在这种情况下,CPU/内核的数量并不重要。
  • 内存量不是问题。超过 50% 是免费的。
  • 我说的是为 memcache 提供的内存量。与其他程序相反,memcache 不会使用尽可能多的内存。您说的是服务器总内存的 50% 还是相对于定义的缓存大小?
  • 我说的是分配给 memcached 的内存。我们总共分配了 1GB,它正在使用 ~500MB。
  • 嗯...这可能是奇怪的应用架构(查看它)、快速缓存失效(增加此条目的缓存超时)或“缓存未命中风暴”-mysqlperformanceblog.com/2010/09/10/cache-miss-storm

标签: php memcached load-testing


【解决方案1】:

memcached 的工作方式有点像 LRU 列表,但有点不像:Checkout memcached for dummieshttp://work.tinou.com/2011/04/memcached-for-dummies.html

令我震惊的是,您每次请求访问 memcached 的次数......对于同一个项目?您可能希望通过“请求缓存”这些查找来减少这种“喋喋不休”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2013-09-04
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2021-01-12
    相关资源
    最近更新 更多