Articles of memcache

找不到phpize命令

我在Cent OS 5服务器上安装了memcache,我正在遵循本指南> http://www.howtoforge.com/php_memcache_centos5.0 而现在,当我inputphpize && ./configure –enable-memcache && make 服务器说phpize: command not found 所以,我试过这个命令yum -y install php-devel ,以下是服务器的答案 Loaded plugins: fastestmirror Repository 'vz-base' is missing name in configuration, using id Repository 'vz-updates' is missing name in configuration, using id Loading mirror speeds from cached hostfile * addons: mirror.5ninesolutions.com * base: mirror.san.fastserv.com * extras: mirror.nwresd.org […]

将NGINXconfiguration为使用memcache处理reverse_proxy_cache

有没有办法configurationnginx使用memcache来存储caching数据,而不是使用存储在硬盘上的文件?

Memcached会在这种情况下提供帮助吗?

我在一个大型互联网站点工作,人们可以分享大量的文字。 我们将大部分信息存储在InnoDB数据库中,但实际的文本片段存储在基于文本的文件中。 这些基于文本的文件在几个KB到10MB之间不等。 有数以百万计的这些文件,我们已经build立了一个良好的文件夹/文件结构,以便从来没有太多的文件在一个文件夹。 networking服务器(数据库是另一个),这些文件存储是一个function强大的机器与RAID10 4个15k SAS驱动器,并有24GB RAM。 我们运行Nginx作为Web服务器和Xcache来加速PHP。 这一切都是完美的,负载通常在0.7到1.5之间变化。 现在,我只打算使用Memcached来存储“基于文本的”文件。 所以每当有人要求页面加载这些“基于文本”的文件时,不必从磁盘读取它们。 在PHP中,我使用file_get_contents(); 将“基于文本的”文件加载到variables中,然后在页面的某个地方显示。 我的问题是,它真的会降低你认为为这个特定function实现Memcached的负载,还是Linux已经有一些内部文件caching本身,当我经常通过file_get_contents请求某个文件时使用?

Memcacheddebugging/服务器日志监视Memcached服务器?

我有基于Memcachedvariables的聊天引擎,把它们放到数组中,并通过jQuery来读取它们, 它工作正常95%的时间,但是当服务器负载是高memcached(假定它的memcached)崩溃和浏览器得到扼杀。 我不认为它的jQuery问题,因为这只发生在服务器负载非常高。 我需要一种方法来监视memcached服务器或以某种方式写入一个日志文件到失败/错误的地方… 任何想法,我怎么能做到这一点? 或任何想法为什么memcached服务器失败? 我运行memcached如下 $GLOBALS['MemCached'] = FALSE; $GLOBALS['MemCached'] = new Memcache; $GLOBALS['MemCached']->pconnect('localhost', 11211); 我的memcachedconfiguration如下 #! /bin/sh # # chkconfig: – 55 45 # description: The memcached daemon is a network memory cache service. # processname: memcached # config: /etc/sysconfig/memcached # pidfile: /var/run/memcached/memcached.pid # Standard LSB functions #. /lib/lsb/init-functions # Source function library. […]

Memcached故障转移技术

我们configuration了2个memcached服务器并使用Eniym客户端。 当其中一台服务器closures时,看起来这个服务器被添加到了deadServers列表(ServerPool.cs)中,并且每10秒就会尝试重新启动一次服务器(我们configuration了deadTimeOut为10秒)。 尝试连接到发生故障的服务器会导致TCP超时,这些页面需要很长时间才能加载,从而导致用户体验不佳。 1)解决这个问题的标准方法是什么? 有一些关于从deadServers列表中删除服务器的post。 这样做可以吗? 2)什么是推荐的deadTimeOut设置(我的默认情况下是2分钟,我们已经改变了10秒) 3)我的理解是正确的,caching的数据不复制跨服务器1和服务器2? 如果服务器1closures,那么它会去数据库获取这些值(而不是真的检查Server2)? 任何帮助真的很感激。

Apache2 Segfault – 需要帮助解释此coredump(可疑的原因是memcache / PHP会话相关)

运行PHP 5.2.3网站的三台Apache2 Web服务器 我们正在使用Memcache来caching呈现的页面,但也作为PHP会话的存储引擎。 在交通高峰期,我们在所有三个Web服务器和所有HTTPDsubprocess上发生Apache分段错误。 我的直觉告诉我,增加的Memcachestream量正在阻止PHP会话被创build或清理,从而死亡。 有人可以从以下方面确认吗? : #0 _zend_mm_free_int (heap=0x7fb67a075820, p=0x7fb67a011538) at /usr/src/debug/php-5.3.3/Zend/zend_alloc.c:2018 #1 0x00007fb665d02e82 in mmc_buffer_free (request=0x7fb67a011548) at /usr/src/debug/php-pecl-memcache-3.0.4/memcache-3.0.4/memcache_pool.c:50 #2 mmc_request_free (request=0x7fb67a011548) at /usr/src/debug/php-pecl-memcache-3.0.4/memcache-3.0.4/memcache_pool.c:169 #3 0x00007fb665d031ea in mmc_pool_free (pool=0x7fb67a00e458) at /usr/src/debug/php-pecl-memcache-3.0.4/memcache-3.0.4/memcache_pool.c:917 #4 0x00007fb665d0a2f1 in ps_close_memcache (mod_data=0x7fb66d625440) at /usr/src/debug/php-pecl-memcache-3.0.4/memcache-3.0.4/memcache_session.c:185 #5 0x00007fb66d1b0935 in php_session_save_current_state () at /usr/src/debug/php-5.3.3/ext/session/session.c:625 #6 php_session_flush () at /usr/src/debug/php-5.3.3/ext/session/session.c:1517 #7 0x00007fb66d1b0c1b in […]

Memcache – 在有许多节点的分布式环境中的问题

我已经快速浏览了其他类似题目的问题,没有一个与我目前遇到的问题特别相似。 基本上,我们已经有了一个多节点的memcached环,运行了两年多,而且大部分情况是没有问题的。 memcache安装最近被移动到专用服务器上,容量增加了两倍(2GB到2GB)。 起初,我们遇到了麻烦,我认为这是php库如何与服务器交谈的问题,或者是服务器列表的顺序问题,或者是它们被错误地启动。 服务器“似乎”工作正常,但密钥似乎被存储在多个服务器上,并且过期不会过期值的所有实例。 基本上,我们将哈希机制从标准更改为一致,并且关键查找(到期/获取)和一切问题似乎已经恢复正常。 不过,在过去几周里,我一直在监视事物,注意到第一台服务器似乎要比第二台服务器多出许多倍(PHP memcache monitor工具报告每秒平均有1200次点击 ,而第二台服务器在500 )。 谁能解释一下: 首先,了解上面发生的事情,为什么一个服务器会在“分布式”环境中获得如此多的命中 其次,在分布式情况下,memcache客户端的推荐设置是什么 我使用一致的哈希做正确的事情吗? 我应该使用故障转移吗? 二进制存储? 或压缩? 什么是重置/移动现场内存caching环的正确过程 我发现memcached是一个非常棒的工具,对于它的目的来说是完美的,但实际的最佳实践指南和有用的文档(很less有详细描述)几乎没有。 如果我能够对发生的事情有一些了解,我一定会把它作为一个技术文章发布给所有人看(今后会有所帮助),但是我现在有麻烦了! 提前致谢

分配一个memcache数组的php会话负载

直到最近,我们的设置包括4个networking服务器共享会话到单个运行memcache的服务器。 我们托pipe在亚马逊云上,并在连续两天的高峰负载中发生崩溃。 问题是memcache服务崩溃了(我们网站的负载一直在稳步增长)。 所以我们采取了以下措施: 1)增加了2个用于存储会话的服务器 2)在所有Web服务器的php ini文件中设置以下variables session.save_handler = memcache session.save_path = tcp://ip1.port, tcp://ip2.port, tcp://ip3:port memcache.hash_strategy = consistent memcache.allow_failover = 1 事情正在按顺序运行。 为了确保可用性,我们尝试通过随机杀死我们的一个会话服务器进行testing,并且网站继续运行(有些用户已经注销,目前商业上可以接受)。 但是有一个主要问题。 我预计memcache服务器上的负载或多或less是平均分配的。 但它不是! 如果我在CloudWatch中查看“Max Network Out(Bytes)”,则可以看到负载大致是10:5:1的比例。 换句话说,In和Outnetworking带宽明智,第一台服务器是第三台服务器的10倍。 而第二台服务器是第三台服务器的5倍。 有任何想法吗?

在Ubuntu的服务器上的memcache明确和ruby1.9.1

我正在尝试在上面的设置上设置一个memcache服务器。 我收到以下错误: /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:443:in `load_missing_constant': uninitialized constant MemCache (NameError) from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:80:in `const_missing_with_dependencies' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:92:in `const_missing' from /root/voicegateway/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:18:in `<class:MemcacheQueueClient>' from /root/voicegateway/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:14:in `<module:Clients>' from /root/voicegateway/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:13:in `<module:Workling>' from /root/voicegateway/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:12:in `<top (required)>' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `block in require' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' from /root/voicegateway/vendor/plugins/workling/lib/workling/remote/runners/client_runner.rb:2:in `<top (required)>' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `block in require' from /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in […]

PHP的APC主要碎片问题?

所以我一直在使用memcached来caching查询到数据库的大量数据。 一切都保留在默认情况下,平均而言,我在内存caching中存储了<40MB。 我用memcache.php来监视。 然后我决定切换到APC并在本地caching,因为我真的不需要memcache(为了避免TCP开销?)。 然后事情变得很大,我开始看到很多碎片问题。 我有一个16GB的内存的服务器,有很多东西要去,所以我分配了APC 2GB。 大约6个小时后,它填充到1.1GB。 我认为它正在接近caching可能caching的所有内容。 这与memcache存储的内容有很大的区别(<40MB)。 更不用说APC图表显示了一大堆碎片,而且还在继续增长。 我不确定这是否有问题? 以下是APC.php给我的截图: http ://i.imgur.com/ey86r.png 其他一些注意事项:apc.gc_ttl = 0; apc.stat = 0;