sphinx-search仅使用250个连接

当我们对狮身人面像search集群进行压力testing时,请求总是大约在250左右,并且永远不会更高。

我们正在使用CentOS 6.x

我们的TCP设置是:

modprobe ip_conntrack_ftp #echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max echo 3145728 > /proc/sys/net/netfilter/nf_conntrack_max echo 40 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_syn_recv echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle echo "0" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo '10000 65000' > /proc/sys/net/ipv4/ip_local_port_range echo never > /sys/kernel/mm/transparent_hugepage/enabled sysctl vm.overcommit_memory=1 sysctl net.core.somaxconn=1024 

我们有以下狮身人面像设置:

  1. Web服务器与PHP和狮身人面像 – search代理

  index instal_all { type = distributed agent_persistent = spbox40:9405:instal_all_0 agent_persistent = spbox41:9405:instal_all_1 agent_persistent = spbox11:9405:instal_all_2 } searchd { listen = 9305:mysql41 log = /usr/local/sphinx/var.d/log/searchd.log query_log = /usr/local/sphinx/var.d/log/query.log read_timeout = 5 max_children = 2000 persistent_connections_limit = 1000 pid_file = /usr/local/sphinx/var.d/log/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work dist_threads = 3 # distributed threads binlog_path = # agent_query_timeout = 10000 } 

  1. 3个像这样的sphinxsearch节点:

 index instal_base { type = rt # rt_mem_limit = 8096M rt_mem_limit = 512M # path = /usr/local/sphinx/var/data.00/instal # ondisk_attrs = pool rt_field = caption rt_field = tags rt_field = mentions rt_attr_string = country rt_attr_string = username # rt_attr_string = full_name rt_attr_uint = likes rt_attr_uint = comments rt_attr_uint = date_created rt_attr_uint = hidden rt_attr_uint = media_type } index instal_0 : instal_base { path = /usr/local/sphinx/var/data.00/instal } ... index instal_11 : instal_base { path = /usr/local/sphinx/var/data.11/instal } index instal_all { type = distributed local = instal_0 local = instal_1 local = instal_2 local = instal_3 local = instal_4 local = instal_5 local = instal_6 local = instal_7 local = instal_8 local = instal_9 local = instal_10 local = instal_11 } index instal_all_0 { type = distributed local = instal_0 local = instal_1 local = instal_2 local = instal_3 } index instal_all_1 { type = distributed local = instal_4 local = instal_5 local = instal_6 local = instal_7 } index instal_all_2 { type = distributed local = instal_8 local = instal_9 local = instal_10 local = instal_11 } searchd { listen = 9305:mysql41 listen = 9405 log = /usr/local/sphinx/var/log/searchd.log query_log = /usr/local/sphinx/var/log/query.log read_timeout = 5 max_children = 2000 pid_file = /usr/local/sphinx/var/log/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work dist_threads = 4 # distributed threads binlog_path = }