- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直在成功使用 ServiceStack PooledRedisClientManager。我现在正在将 Twemproxy 添加到组合中,并在单个 Ubuntu 服务器上运行 4 个以 Twemproxy 为前端的 Redis 实例。
这导致轻负载测试(100 个用户)通过 ServiceStack 连接到 Redis 时出现问题。我已经尝试了原始的 PooledRedisClientManager 和 BasicRedisClientManager,两者都给出了错误No connection could be because the target machine actively refused it
我需要做些什么才能让这两个人一起玩得开心吗?这是 Twemproxy 配置
alpha:
listen: 0.0.0.0:12112
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
timeout: 400
server_retry_timeout: 30000
server_failure_limit: 3
server_connections: 1000
servers:
- 0.0.0.0:6379:1
- 0.0.0.0:6380:1
- 0.0.0.0:6381:1
- 0.0.0.0:6382:1
我可以单独连接到每个 Redis 服务器实例,只是无法通过 Twemproxy。
最佳答案
我之前没有使用过 twemproxy,但我会说你的服务器列表是错误的。我不认为你在使用 0.0.0.0
正确。
您的服务器需要(用于本地测试):
servers:
- 127.0.0.1:6379:1
- 127.0.0.1:6380:1
- 127.0.0.1:6381:1
- 127.0.0.1:6382:1
您使用 0.0.0.0
在 listen
上命令告诉 twemproxy 监听服务器上所有可用的网络接口(interface)。这意味着 twemproxy 将尝试监听:
当您指定服务器时,服务器配置需要知道它应该连接的实际地址。 0.0.0.0
没有意义。它需要一个真正的值(value)。所以当你来使用不同的Redis机器时你会想要使用,每台机器的私有(private)IP是这样的:
servers:
- 192.168.0.10:6379:1
- 192.168.0.13:6379:1
- 192.168.0.14:6379:1
- 192.168.0.27:6379:1
显然您的 IP 地址会有所不同。您可以使用 ifconfig
确定每台机器上的IP。如果您的 IP 不是静态分配的,则可能值得使用主机名。
正如您所说,您仍然遇到问题,我会提出以下建议:
删除 auto_eject_hosts: true
.如果你获得了一些连接,那么一段时间后你最终没有连接,这是因为某些东西导致 twemproxy 认为 Redis 主机有问题并拒绝它们。
因此,最终当您的 ServiceStack 客户端连接到 twemproxy 时,将没有主机可以将请求传递到,您会收到错误 No connection could be made because the target machine actively refused it
.
您是否真的有足够的 RAM 来以这种方式对您的本地计算机进行压力测试?您正在运行至少 4 个 Redis 实例,它们需要实际内存来存储值,twemproxy 消耗大量内存来缓冲它传递给 Redis 的请求,这个内存池永远不会被释放,see here for more information .您的 ServiceStack 应用程序将消耗内存 - 在 Debug模式下更是如此。您可能会打开 Visual Studio 或其他 IDE、压力测试应用程序和您的操作系统。最重要的是,您可能还没有关闭后台进程和其他应用程序。
A good practice is to try to run tests on isolated hardware as far as possible. If it is not possible, then the system must be monitored to check the benchmark is not impacted by some external activity.
您应该阅读 Redis article here关于基准测试。
因为您在 localhost
中使用它情况使用 BasicRedisClientManager
不是 PooledRedisClientManager
.
关于redis - 将 ServiceStack Redis 与 Twemproxy 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21345874/
我有一张 Excel 表格,用于更新玩家评分。 播放器 配售 初始化 1 2 3 4 金融评级 一个 1 2.0 1.000 0.018 0.016 0.014 2.007 D 2 -2.0 54.5
我有一个 map = std::map ,其中 myItemModel继承QAbstractItemModel . 我现在要合并所有 myItemModel合一myItemModel (其他所有元素模
我大量使用“do.call”来生成函数调用。例如: myfun <- "rnorm"; myargs <- list(n=10, mean=5); do.call(myfun, myargs); 但是
想象一下 InputStream 的以下变体: trait FutureInputStream { //read bytes asynchronously. Empty array means E
这是我的 C 代码: #include void sum(); int newAlphabet; int main(void) { sum();
我只是想选择类“.last”之后的每个元素。 HTML: 1 2 Jquery
我正在为一个项目构建一个 XML 反序列化器,我经常遇到这种类型的代码情况: var myVariable = ParseNDecimal(xml.Element("myElement")) == n
这是来自 Selecting the highest salary 的继续问题 假设有一个表 'wagetable' name lowhours highhours wage pri
我正在为我的程序创建一个战舰程序;该程序运行良好,但我试图确保当用户将坐标超出范围时,程序会说他们输入的坐标不正确。这是代码: #include #include void
我有一个函数,它为每种情况返回不同的 DWORD 值,如果出现错误。所以我有以下定义: #define ERR_NO_DB_CONNECTION 0x90000 #define ERR_DB_N
在派生类中引发基类事件以下简单示例演示了在基类中声明可从派生类引发的事件的标准方法。此模式广泛应用于 .NET Framework 类库中的 Windows 窗体类。在创建可用作其他类的基类的类时,应
我只是想知道这是否可能: use Modern::Perl; my @list = ('a' .. 'j'); map { func($_) } each(@list); sub func { m
我一直在使用 =IF(L2="","Active",IF(K2I2,"Late"))) 有效,但现在我需要检查 F 上的多个条件 专栏 我试过了 OR 函数 =IF(OR(F2="Scheduled"
我有 2 个命令,如下所示。 在视频中添加介绍图片 ffmpeg -y -loop 1 -framerate 10 -t 3 -i intro.png -i video.mp4 -filter_com
好的,我有这个公式可以根据名字和姓氏列表生成用户名。现在,虽然这可行,但我希望单元格改为引用我自己的 VBA 函数。但是,由于代码少得多,我仍然想使用原始公式。 我有这个公式: =SUBSTITUTE
我有两个 HAProxy 实例。两个实例都启用了统计信息并且工作正常。 我正在尝试将两个实例的统计信息合并为一个,以便我可以使用单个 HAProxy 来查看前端/后端统计信息。我试图让两个 hapro
我有一个 Observable,其中每个新值都应该引起一个 HTTP 请求。在客户端,我只关心最新的响应值;但是,我希望每个请求都能完成以进行监控/等。目的。 我目前拥有的是这样的: function
我的网站上有 TinyMCE 插件。在 TinyMCE 插件的 textarea 中添加图像时,我希望这些图像包含延迟加载。我网站的缩略图具有特定类型的延迟加载,其中 src 图像是灰色背景。根据用户
我希望合并润滑间隔,以便如果它们重叠,则从内部第一个时间获取最小值和从内部最后一个时间获取最大值并总结以创建一个跨越整个时间段的新间隔。这是一个reprex: library(lubridate, w
我有一个应用程序,它本质上是一个页眉、主要内容和一个始终可见的页脚。页脚可以改变大小,我想在页脚上方的主内容面板上放置一些工具。主要布局是用 flex 完成的,我阅读文档的理解是绝对定位通过相对于最近
我是一名优秀的程序员,十分优秀!