【问题标题】:What are possible reasons for memcached to be significantly slower on a remote server?memcached 在远程服务器上显着变慢的可能原因是什么?
【发布时间】:2011-11-18 05:08:28
【问题描述】:

我有一个 12GB 内存的 PHP/Apache 服务器。我一直在分配有 6GB RAM 的同一台机器上运行 Memcached。

我想在单独的服务器(相同的数据中心、vlan、子网)上运行 Memcached,就像我对 MySQL 所做的那样。我使用相同的 memcached 配置设置了一个单独的、相同的服务器。

我发现从远程服务器使用 Memcached 的页面加载时间大约是本地运行时的 10 倍。我已经准备好两个缓存,但我仍然有 10 倍的远程加载时间。

我无法解决这个问题。

【问题讨论】:

  • 你认为如何从远程服务器检索数据?!?
  • 跟进 Macmade 的评论:latency 的区别是什么?这应该说明差异:为了比较,与以太网相比,本地连接几乎没有通信延迟。考虑运行一些测试来增加(或减少)相对较小大小的 memcached 查询的数量,以了解它如何适应页面加载时间。
  • 猜猜有人应该最终发明 RAM 远程传输......
  • @Macmade 昨天有一个关于量子力学的可爱 OPB 节目......完全为一般的沙发冲浪者完成了,但仍然非常有趣。显然,传送人类所需要做的“全部”是生成对象中所有物质状态的列表,生成列表(数据多于已知的宇宙)和......废话。我的大脑无法通过这一步,更不用说量子纠缠的东西了 :)
  • 猜猜一个简单的 malloc() 不会让它为该数据分配空间; ) 可惜今天的计算机限制了这么多这样的想法!

标签: memcached latency


【解决方案1】:

您每次页面加载要加载 500kb 的数据,在所有小键中?每个页面加载多少个键?

远程服务器的延迟非常低,但运行多次往返仍然不是一个好主意。 Memcached 客户端支持多获取操作,您可以将许多键批处理到单个请求/响应中,并且延迟要低得多。

【讨论】:

    【解决方案2】:

    仅供参考,DDR3-1333 约为 10667 MB/s。

    如果你有,比如说,千兆以太网,我想它可以解释你遇到的一些问题......

    【讨论】:

    • 服务器之间确实有 DDR3 和千兆位。
    • 所以,要恢复,10GB/s(内存 - 本地)与 1GB/s(以太网 - 远程)...你不是说远程服务器慢 10 倍吗?
    • 我不会移动 10GB 的数据。我在每个页面加载上检索一组键-> 值对,每个都非常小。总的来说,我在服务器之间移动的数据不到 500kb。
    • 数据量无关紧要。在本地,数据在 RAM 中,您可以直接访问,因此 10GB/s。对于远程服务器,数据也在 RAM 中,但不在本地机器上。它仍然需要传输到本地服务器,这是使用以太网完成的,所以 1GB/s ......对于 1 字节来说是这样,对于 1 TeraByte 的数据来说也是如此。
    • 澄清一下,页面加载时间从
    猜你喜欢
    • 2022-08-21
    • 2012-01-24
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多