首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal站点- Memcache连接错误

Drupal站点- Memcache连接错误
EN

Stack Overflow用户
提问于 2009-05-18 19:41:25
回答 1查看 3.1K关注 0票数 3

我们正在努力优化我们的drupal站点。我们正在使用围攻来衡量性能(作为drupal访问者)。

环境: Nginx + FastCGI+ Memcache

围攻运行了几秒钟,然后我们遇到了连接错误:示例:

代码语言:javascript
复制
HTTP/1.1 200  29.18 secs:    5877 bytes ==> /
HTTP/1.1 200  29.39 secs:    5877 bytes ==> /
warning: socket: -1656235120 select timed out: Connection timed out
warning: socket: -1673020528 select timed out: Connection timed out

使用相同的围城测试配置,Nginx + FastCGI+ Drupal Cache似乎工作得很好。示例:

代码语言:javascript
复制
HTTP/1.1 200   1.41 secs:    5868 bytes ==> /
HTTP/1.1 200   1.40 secs:    5868 bytes ==> /

正如您所看到的,除了连接错误之外,使用MemCache的响应时间要长得多。

你知道这里会出什么问题吗...为什么Drupal会在负载下抛出memcache错误?

Memcache在单独的实例上运行。已为MemCache分配2 2GB内存。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-18 22:43:14

I你的memcached连接用完了。请使用简单的脚本每秒运行一次memcached安装检查。然后开始围攻。我猜你的memcached会在一段时间后停止响应。

测试memcache php脚本:

代码语言:javascript
复制
<?php
 $memcache = new Memcache;
 $memcache->connect('localhost', 11211) or die ('Unable to connect');
 $version = $memcache->getVersion();
 echo 'Server version: '.$version;
?>

猜测正在发生的情况是,你没有禁用memcache中的持久连接,它们会挂在php线程中。Memcached一次可以为大约1023个线程提供服务,这在筛选时可能还不够。

您还可以尝试使用与-c开关非常接近的apache基准测试工具。尝试一下,看看结果在不同的值上是如何变化的。

最后,您应该在php机器上的memcached端口(通常是11211)上运行tcpdump,以找出连接发生了什么情况。drupal会启动它们吗?另一台主机是使用RST响应还是超时?

memcached php文档api中有一个bug,指出默认情况下连接是非持久的。默认情况下,它们的持久化的(好吧,在我遇到问题的时候,它们就是持久性的)。

请随时对此答案发表评论,我将阅读评论并在必要时提供进一步的帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/879417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档