如何针对高负载优化Redis服务器?

时间:2015-02-12 09:28:37

标签: linux redis debian high-load

服务器:Intel® Core™ i7-3930K 6 core, 64 GB DDR3 RAM, 2 x 3 TB 6 Gb/s HDD SATA3

OS(uname -a):Linux *** 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u1 x86_64 GNU/Linux Redis server 2.8.19

在服务器上旋转Redis-server,其任务是为两个PHP服务器的请求提供服务。 问题:服务器无法应对峰值负载并停止处理传入的请求或使其非常缓慢。

我尝试优化服务器的尝试:

cat /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
ulimit -SHn 100032
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

cat /etc/sysctl.conf
vm.overcommit_memory=1
net.ipv4.tcp_max_syn_backlog=65536
net.core.somaxconn=32768
fs.file-max=200000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

cat /etc/redis/redis.conf
tcp-backlog 32768
maxclients 100000

我在redis.io上找到了哪些设置,这些设置位于博客中。

测试

redis-benchmark -c 1000 -q -n 10 -t get,set
SET: 714.29 requests per second
GET: 714.29 requests per second

redis-benchmark -c 3000 -q -n 10 -t get,set
SET: 294.12 requests per second
GET: 285.71 requests per second

redis-benchmark -c 6000 -q -n 10 -t get,set
SET: 175.44 requests per second
GET: 192.31 requests per second

通过增加客户数量来降低查询性能和最糟糕的事情,Redis-server停止处理PHP中的传入请求和服务器有几十种类型的异常

Uncaught exception 'RedisException' with message 'Connection closed' in [no active file]:0\n
Stack trace:\n
#0 {main}\n  thrown in [no active file] on line 0

怎么办?还有什么可以优化的?这样的机器如何吸引客户?

谢谢!

0 个答案:

没有答案