Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django memcached降低网站速度_Django_Memcached - Fatal编程技术网

Django memcached降低网站速度

Django memcached降低网站速度,django,memcached,Django,Memcached,我有一个由nginx和django提供服务的网站 My包含正确的缓存和中间件设置。你可以看一看这个。我已经确认memcached正在通过ngrep-d任何端口11211运行 我打开了整个站点的缓存,并希望通过执行ab-n1000-c10来查看性能http://site.com 关闭缓存后,我得到: 打开缓存后,我得到: Concurrency Level: 10 Time taken for tests: 12.277 seconds Complete requests:

我有一个由nginx和django提供服务的网站

My包含正确的缓存和中间件设置。你可以看一看这个。我已经确认memcached正在通过
ngrep-d任何端口11211运行


我打开了整个站点的缓存,并希望通过执行
ab-n1000-c10来查看性能http://site.com

关闭缓存后,我得到:

打开缓存后,我得到:

Concurrency Level:      10
Time taken for tests:   12.277 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      11695000 bytes
HTML transferred:       11559000 bytes
Requests per second:    81.45 [#/sec] (mean)
Time per request:       122.771 [ms] (mean)
Time per request:       12.277 [ms] (mean, across all concurrent requests)
Transfer rate:          930.26 [Kbytes/sec] received
我的网站是一个从数据库中获取帖子的博客——没有什么异国情调


如果有人能告诉我为什么使用memcached网站的速度会减慢,我将不胜感激。您可以看到,当我使用memcached时,“每秒请求数”实际上会下降

然而,当我运行ab时,我得到了一个消息(尽管在测试期间读写计数器上升)。我有,memcached已经用完了内存

编辑

我运行了
memcached-vv
,得到了一个。您可以看到memcached第一次打印出一个“存储的”,然后似乎没有从缓存发送它(对此不确定)。现在我更糊涂了。也许memcached和django接口正在工作,但最终的结果是最好不要运行memcached?

Trewq,所有不同的事情都可能出错。您说过您的机器没有分页,但是get请求不会返回,即使memcache存储了结果

我的理论是:超时时间太短,驱动程序不好,可能CPU配置错误(x86 vs_64)

超时 通常在-vv输出(可能是-vvv)中,SET行将具有命令、键、值和超时等语法。memcache存储的问题可能是超时时间很小,然后几乎立即刷新值

[noreply]\r\n-

司机 另外,您正在使用的memcache驱动程序/api可能存在问题,因为mc永远不会阻止那么长的内存。您可以在执行bechmark运行之前和之后执行类似操作来检查memcache服务状态

关键审计 不久前,我在这个问题中编写了脚本来审核memcache-vv的输出,以查看get到set的平衡程度。虽然已经有一段时间了,但我相信它可能会对您有所帮助

wiki中没有提到stat,但是有stat值可以帮助您确定缓存是否平衡-


超级理想的情况是9/10的请求是命中率为1比1,现实情况是6/10的请求命中率更高,任何低于60%的请求都是在浪费内存。

返回为未知postsorry。。新的链接现在应该可以工作了。我不确定这里到底是什么问题。您是否尝试查看缓存命中率?我想和你分享mintcache可能是件好事。“如果有人能告诉我为什么使用memcached网站的速度会变慢,我将不胜感激。你可以看到,当我使用memcached时,“每秒请求数”实际上会下降!”我打开了整个网站的缓存-你是如何打开的?我同意-在一个完美的世界中,你的命中率会达到90%或更高。但是你能证实你的说法,60%的命中率是效用的阈值吗?或者这是一个基于个人经验的主观尖峰?@Chris-一个客户的个人经验,该客户拥有几个12GB阵列,在16小时的“互联网”日内处理1400-1500万次页面浏览。当您的HLA环境命中/未命中率低于60%时,这是一个不一致的键控信号,表明您在某个地方欺骗了某个用户(降级/缓慢的服务)-除了我的python脚本之外,我的一个好朋友写了这篇文章,但我不知道它是否稳定。@Chris-差点忘了。60%以下的另一个罪魁祸首是过期时间太短。我的方法通常是使用一个中央配置文件,其中列出了按类别(全局、模块、所有用户、部分用户、单个用户)划分的过期时间列表,并将所有内容设置为在未来一年过期。这是公平的。感谢你的解释,我不确定60%的说法有何根据,但你的论点事实上证明了这一点(即,如果你是60%或更低,你肯定可以调整以获得更高的比率)
Concurrency Level:      10
Time taken for tests:   12.277 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      11695000 bytes
HTML transferred:       11559000 bytes
Requests per second:    81.45 [#/sec] (mean)
Time per request:       122.771 [ms] (mean)
Time per request:       12.277 [ms] (mean, across all concurrent requests)
Transfer rate:          930.26 [Kbytes/sec] received