我正在考虑是否应该得到一个大的(48 Gb RAM)服务器,或者购买4个较小的(12Gb RAM)服务器来运行memcached服务。 在任何一种情况下,我都会有备用的冗余备份,如果以后需要,我将能够添加更多的服务器,所以这个问题纯粹是关于性能 ,而不是容错或可伸缩性。 我倾向于拥有一台大型服务器,因为它更容易pipe理,“更环保”,占用空间更less,但我不知道它是否能够与一组较小的服务器相提并论。 任何想法将不胜感激!
目前,我正在运行一个具有4个专用memcached服务器的生产环境,每个服务器都有48Gb的RAM(专用于memcache的42个)。 目前他们做得很好,但是stream量和内容都在增长,明年也一定会增长。 你对进一步扩展memcached的策略有什么想法? 你到现在为止做了什么: 你是否增加更多的内存,直到他们的全部容量 – 有效地加倍相同数量的盒子上的caching池? 或者是通过添加更多的相同的盒子和相同数量的RAM来水平缩放。 目前的机器肯定可以处理更多的内存,因为它们的CPU负载很低,唯一的瓶颈就是内存,但是我想知道分配caching不是一个更好的策略吗,使事情变得更加冗余,并且尽量减less对caching的影响丢失一个盒子(丢失48Gb的caching而不是96Gb)。 你将如何处理这个决定?
我们有运行nginx 7.65和fastcgi PHP5的web服务器,并正在研究caching的可能性,以加快内容交付和降低系统负载。 服务器运行不同的(自定义)应用程序。 有这么多的caching选项我不知道什么是一个理智的设置。 有memcached,APC,Nginx的fastcgi_cache,proxy_cache …. 我知道memcached具有分发能力作为奖励,但我们现在不需要它。 根据我的经验,如果memcached安装在与服务器相同的机器上,其执行速度会比APC慢,但这是前一段时间。 我不熟悉Nginx的fastcgi_cache甚至是常规的proxy_cache模块。 它可比较还是完全不同? 对于Nginx w来说,一个好的,理智的caching方法是什么。 FastCGI PHP5?
如何监控memcached以了解是否/正在进行多less驱逐,以及使用/释放多less内存。
我设置了一个Django网站来使用memcached来caching它的页面。 (每个页面的内容都不会经常改变,所以我希望大部分时间都能从memcached中获得大部分的网站,从而能够很好地处理大量的stream量。) 网站和memcached都将运行在一台运行在Debian Squeeze上的虚拟服务器上。 考虑到这个设置,我想我可能会设置memcached通过Unix域套接字(请参阅http://code.google.com/p/memcached/wiki/NewConfiguringServer#Unix_Sockets )来监听,而不是通过networking接口。 虽然我的虚拟服务器是相当广泛的防火墙,因为我只需要memcached是由一个本地用户(即Django站点)访问,我想我可能保持限制。 当Memcached和它的客户端在同一个服务器上时,是否有任何缺点让memcached监听Unix域套接字? 例如,一个Unix域套接字可能比在127.0.0.1上侦听更慢? (对于这样一个新手问题抱歉 – 你可能知道,我之前没有使用过memcached,或者在Unix / Linux上做过很多工作。)
让我先说这是这个话题的后续问题。 这是通过从Solaris(SmartOS)切换到Ubuntu的memcached服务器“解决”。 现在我们已经把负载乘以大约5倍,并且再次遇到问题。 我们正在运行一个站点,每分钟处理约1000个请求,每个请求大约有3个读取和1个写入访问Memcached。 所以加载大约是每秒65个请求。 caching中的总数据大约是37M,每个键包含非常less量的数据(一个JSON编码的小于1K的整数数组)。 我们在这些页面上build立了一个基准testing脚本,并将这些数据提供给StatsD进行logging。 问题是Memcached需要很长时间才能响应。 这些似乎与交通高峰相关。 什么可能导致这些尖峰? 为什么memcached会花一秒钟来回复呢? 我们启动了第二台服务器放入池中,并没有在峰值的频率或严重程度上有任何明显的差异。 这是服务器上getStats()的输出: Array ( [———–] => Array ( [pid] => 1364 [uptime] => 3715684 [threads] => 4 [time] => 1336596719 [pointer_size] => 64 [rusage_user_seconds] => 7924 [rusage_user_microseconds] => 170000 [rusage_system_seconds] => 187214 [rusage_system_microseconds] => 190000 [curr_items] => 12578 [total_items] => 53516300 [limit_maxbytes] => 943718400 […]
我使用configure命令从源代码构build了PHP './configure' '–prefix=/usr/local/php-5.2.8' '–with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d' '–with-apxs2=/usr/local/httpd/bin/apxs' '–with-mysql=/usr/local/mysql/' '–with-zlib' 我安装了php memcache扩展: wget http://pecl.php.net/get/memcache tar -zxvf memcache-2.2.5.tgz cd memcache-2.2.5 phpize ./configure –enable-memcache make make install 我添加到我的/usr/local/lib/php.in extension=memcache.so 重新启动我的Apache并运行PHP-M,但PHP似乎不加载memcache扩展我跟着这个网站的解决schemehttp://www.howtoforge.com/forums/showthread.php?t=26554 我加了完整path extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so 重新启动Apache但它没有加载memcache扩展! 我谷歌周围,但同样的问题! 我怎样才能加载这个扩展_ _“
我们使用Newrelic来衡量我们的Python / Django应用程序的性能。 Newrelic报告说,在我们的系统中,“Memcached”平均需要12ms来响应命令。 深入到前十几个Web视图(按请求数),我可以看到一些Memcache get占用了30ms ; 我找不到一次使用Memcache get返回时间不到10ms 。 有关系统架构的更多细节: 目前我们有四个应用服务器,每个应用服务器都有一个memcached成员。 所有四个memcached成员都参与一个memcache群集。 我们正在云托pipe提供商上运行,所有stream量都在“内部”networking上运行(通过“内部”IP) 当我从一个应用程序服务器ping到另一个应答在~0.5ms Memcached的响应时间不是10ms吗? 据我所知,如果你认为“Memcache太慢”,那么“你做错了” 。 那么我做错了吗? 以下是memcache-top命令的输出: memcache-top v0.7 (default port: 11211, color: on, refresh: 3 seconds) INSTANCE USAGE HIT % CONN TIME EVICT/s GETS/s SETS/s READ/s WRITE/s cache1:11211 37.1% 62.7% 10 5.3ms 0.0 73 9 3958 84.6K cache2:11211 42.4% 60.8% 11 […]
我的一个网站是通过Amazon EC2服务托pipe的。 当站点面临沉重的负载时,问题就开始发生,而这又会通过AutoScaling产生一个新的EC2实例。 这是好的,但问题是当这些实例被杀害(由于缺乏负载)会话信息也丢失,因此迫使用户重新login到站点。 解决这个问题的最好方法是什么? 我已经看了Memcached会话pipe理器和它工作正常的粘滞会话,但导致问题,当我尝试使用非粘性会话,因为我做了很多并行请求到我的服务器。 我目前的服务器是Apache + Tomcat 任何指针都有帮助。 谢谢。 ( 从webmasters.stackexchange交叉post )
我通过源安装memcached服务器,可以为1个memcached服务器实例安装标准启动脚本,但通过谷歌尝试几个脚本,找不到一个pipe理自动启动启动多个memcached服务器实例。 我已经尝试了这两个脚本,都不工作,服务memcached启动只是返回到命令提示符没有启动memcached服务器实例 lullabot.com/articles/installing-memcached-redhat-or-centos addmoremem.blogspot.com/2010/09/running-multiple-instances-of-memcached.html 然而,这个bash脚本的工作原理,但启动时不会启动memcached实例? #!/bin/sh case "$1" in start) /usr/local/bin/memcached -d -m 16 -p 11211 -u nobody /usr/local/bin/memcached -d -m 16 -p 11212 -u nobody ;; stop) killall memcached ;; esac 操作系统:Centos 5.5 64位Memcached = v1.4.5 Memcache = v2.2.5 任何人都可以指向我的工作/etc/init.d/启动脚本来pipe理多个memcached服务器? 谢谢 编辑:谢谢,这是代码,结束了工作 #!/bin/sh # chkconfig: – 80 12 # description: The memcached daemon is […]