我在我的应用程序中使用redis pub / sub机制,并希望进行基准测试。我有一台I-7机器,32 GB RAM,ulimit设置为1024.除了ulimit设置为65535之外,Redis服务器配置相同。我可以在没有redis的情况下连接多少个抱怨MAXClient达到异常。我尝试使用连接池等调整连接,但同时请求的数量似乎不超过25K请求。
谢谢\
答案 0 :(得分:0)
我对pub / sub连接没有任何想法,但我在这里解释了我所做的事情,我认为它可以帮到你。
我在redis.conf文件中设置“maxclient”属性设置为27000连接。
然后我运行redis提供的基准实用程序,-c 27000意味着27000并行连接。 但这不会直接作为ulimit -Sn在ubuntu中默认为1024。所以我用65535改变-Sn和-Hn。
redis具有客户端服务器架构,因此我们无法从一台计算机上建立太多客户端连接。所以我们需要重用连接和执行bellow命令 sudo echo 1>的/ proc / SYS /净/的IPv4 / tcp_tw_reuse
然后我能够使用-c 29000连接运行benchmark util。之后我无法用更多客户端执行此util,但是我得到
的错误无法在127.0.0.1:7000连接到Redis:无法分配请求的地址
我仍然没有达到最大连接,因此我使用3个独立的计算机运行相同的基准测试工具,每个计算机具有29000个并行客户端,它可以工作并执行。
奇怪的是我的redis.conf设置了maxclient 27000,仍然可以连接87000客户端。
答案 1 :(得分:0)
对我有用的解决方案: 编辑/etc/systemd/system/redis.service 在[服务]部分添加以下行
LimitNOFILE=110000