奇怪的问题。 负载均衡器后面有6个节点。 他们是运行Ubuntu的高规格VPS。 在另一个节点上,我们运行Redis。 更多的节点运行MySQL。 整个LAMP设置主机Magento。 从基于文件的caching转换到Redis中央caching,我们开始逐个更改每个Magento节点,以便使用Redis槽Cm_Cache_Backend_Redis由于Redis被两台服务器使用,一切运行良好。 所以我们决定切换剩余的4台服务器。 但是,然后性能开始坦克大的时间。 New Relic证实了这个性能回落高达300%。 应用程序响应时间从合理的900-1200ms到3K + ms。 页面加载时间变得可怕,跳跃至less2秒,经常更多。 在大数据量(200个用户遍布6个服务器)的高峰负载下,回归更加深刻。 在痕迹中,我们开始看到Redis一切不好。 Category Slowest components Count Duration % Custom Varien_Simplexml_Element::asNiceXml 578 19,200 ms 33% Custom Varien_Simplexml_Element::extendChild 673 10,200 ms 18% Custom Cm_RedisSession_Model_Session::read 1 5,070 ms 9% Custom Varien_Simplexml_Element::extend 76 4,380 ms 8% Custom Varien_Simplexml_Element::hasChildren 69 2,690 ms 5% Custom Mage_Core_Model_Config::loadModulesConfiguration […]
我读过, 如果是邪恶的,不应该在NginXconfiguration中使用。 但是,我怎么能重写我的代码,以便我不使用if? 我想要做的是:如果有一个特殊的请求“foobar.php”和一个叫做“magicargument”的特殊参数,NginX应该调用Redis而不是php。 当redis失败时,NginX proxy_passes到PHP。 它的工作,但只有当我使用如果! 这是configuration location ~ foobar.php$ { default_type application/json; error_page 404 = @redisfailed; if ($args = "") { return 404; } if ($arg_magicargument = false) { return 404; } set $redis_key $args; redis_pass 127.0.0.1:6379; } location @redisfailed { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }
我使用redis在我的网站上存储统计数据,通常的stream量大约是每秒1000-2000次redis调用,最近我把这个网站迁移到了另一个托pipe服务上,而且我正在尝试redis-server的问题, 12小时运行它突然间得到公羊饥饿,直到我崩溃,为了得到它,我需要重新启动redis服务。 我没有看到在redis日志或系统日志中的任何exception 5274:M 17 Aug 14:55:26.006 * 10000 changes in 900 seconds. Saving… 5274:M 17 Aug 14:55:26.023 * Background saving started by pid 12754 12754:C 17 Aug 14:55:30.823 * DB saved on disk 12754:C 17 Aug 14:55:30.838 * RDB: 24 MB of memory used by copy-on-write 5274:M 17 Aug 14:55:30.925 * Background saving terminated […]
我有一个Redis 3.0.5实例,随着时间的推移,这个实例往往会显示增长的mem_fragmentation_ratio。 使用该实例的应用程序不断创build和删除密钥。 一个月后,我结束了一个mem_fragmentation_ratio> 1.30。 这会影响该服务器上Redis的内存占用情况: ~$ redis-cli info memory # Memory used_memory:7711297480 used_memory_human:7.18G used_memory_rss:10695098368 used_memory_peak:11301744128 used_memory_peak_human:10.53G used_memory_lua:95232 mem_fragmentation_ratio:1.39 mem_allocator:jemalloc-3.6.0 如果我重新启动Redis服务并从AOF重新加载,则mem_fragmentation_ratio会回到可接受的级别(1.06): ~$ redis-cli info memory # Memory used_memory:7493466968 used_memory_human:6.98G used_memory_rss:7924920320 used_memory_peak:8279112992 used_memory_peak_human:7.71G used_memory_lua:91136 mem_fragmentation_ratio:1.06 mem_allocator:jemalloc-3.6.0 回收Redis正在影响我们的应用程序(即使我们在从属程序重新启动后使用Sentinel故障切换执行此操作)。 有没有另一种方法来减lessmem_fragmentation_ratio,就像我可以安排非高峰的“碎片整理”过程?
我在phpmyadmin + redis php会话caching中遇到了一个奇怪的行为。 这里是我的php-fpm池configuration: php_value[session.save_handler] = redis php_value[session.save_path] = "tcp://127.0.0.1:6379" 这个configuration适用于一个简单的PHP脚本: <?php //simple counter to test sessions. should increment on each page reload. session_start(); $count = isset($_SESSION['count']) ? $_SESSION['count'] : 1; echo $count; echo "<br>"; $_SESSION['count'] = ++$count; $username = $_SESSION['username']; if(isset($_SESSION['logged']) && $_SESSION['logged']=='yes') { echo "$username"; } $_SESSION['username']='Teddy'; $_SESSION['logged']='yes'; ?> 我看到增量和泰迪信息。 但是,当我尝试通过“ http:// […]
我有一个Redis集群,拥有3个主站和3个从站。 我可以将数据添加到群集并获取数据,没有问题。 数据保存到主节点时就会出现问题。 一段时间后,主设备将自行重启(请参见下面的输出),然后其所保存的数据将会丢失。 如果集群决定使用一个从机来存储数据,那么数据将被保存直到达到ttl。 发生重启时,日志中的输出如下所示: 30580:signal-handler (1479922724) Received SIGTERM scheduling shutdown… 30580:M 23 Nov 17:38:44.544 # User requested shutdown… 30580:M 23 Nov 17:38:44.545 * Calling fsync() on the AOF file. 30580:M 23 Nov 17:38:44.545 * Saving the final RDB snapshot before exiting. 30580:M 23 Nov 17:38:44.567 * DB saved on disk 30580:M 23 Nov […]
我有nginx上游的redis服务器(5台服务器上有4个redis实例),如下所示: upstream redis_cluster { server 10.0.1.8:6379 fail_timeout=0; server 10.0.1.8:6380 fail_timeout=0; server 10.0.1.8:6381 fail_timeout=0; server 10.0.1.8:6382 fail_timeout=0; server 10.0.1.6:6379 fail_timeout=0; server 10.0.1.6:6380 fail_timeout=0; server 10.0.1.6:6381 fail_timeout=0; server 10.0.1.6:6382 fail_timeout=0; … keepalive 16; } 在添加最后一个服务器(实际上是最后4个redis实例)之后,我注意到了一些奇怪的连接: 9684 10.0.0.17:6379 TIME_WAIT 3 10.0.0.17:6380 ESTABLISHED 9677 10.0.0.17:6380 TIME_WAIT 9664 10.0.0.17:6381 TIME_WAIT 6 10.0.0.17:6382 ESTABLISHED 9660 10.0.0.17:6382 TIME_WAIT 4 10.0.1.3:6379 ESTABLISHED 1 […]
我创build了一个EC2 t2.micro实例,并能够通过SSH连接到计算机并安装Redis。 Redis正在工作,因为我可以重新启动它并ping命令并从命令行写入logging。 我允许本机的安全组中的Redis端口,但是我仍然无法访问networking外部的Redis。 我什至试图让所有的IP访问6379。 安全组看起来像这样:SSH – TCP – 22 – 我的IP自定义TCP – 6379 – 0.0.0.0/0 有没有其他的防火墙我需要允许这个访问? 我尝试使用自定义节点应用程序和Redis桌面pipe理器连接到来自家庭和另一个networking的EC2 Redis实例。
我主持了一个使用Sidekiq来pipe理其后台作业的Rails 5网站。 我的问题是,经常appendonly.aof文件增长到它将它保存的整个磁盘。 有没有办法限制appendonly.aof的大小? 我的redis.conf文件非常标准 ########################## 一般 daemonize是pidfile /var/run/redis/redis-server.pid端口6379 tcp-backlog 511绑定0.0.0.0 超时0 tcp-keepalive 0 日志级别通知 日志文件/var/log/redis/redis-server.log 数据库16 ########################## SNAPSHOTTING save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error是rdbcompression是rdbchecksum是dbfilename dump.rdb dir / var / lib / redis ########################### REPLICATION slave-serve-stale-data是slave-read-only是repl-diskless-sync否repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 ############################ SECURITY ##################### ########极限 maxmemory-policy noviction ######################## APPEND ONLY MODE […]
使用软件包pipe理器在OpenSuse 42.1上安装Redis 3.2.4。 机器有16GB的内存。 这些步骤是否正在运行。 (我想运行deamon,但没有改变设置。) cp default.conf.example default.conf chown root.redis default.conf systemctl enable redis@default systemctl start redis@default service redis start 获取这些错误: 54778:C 18 Jan 12:38:56.664 # systemd supervision requested, but NOTIFY_SOCKET not found 54778:M 18 Jan 12:38:56.665 # You requested maxclients of 10000 requiring at least 10032 max file descriptors. 54778:M 18 Jan 12:38:56.665 […]