昨天已经发了篇文章,说 nginx1.9版本涵盖了ngx_stream_core_module的功能, ngx_stream_core_module是可以对tcp server进行负载均衡的。 不知道是官网针对stream的conf配置没有更新完整,还是stream本身附带的参数就不多,总觉得nginx官方出的ngx_stream_core_module模块还没有阿里出的nginx tcp proxy专业似的… 不管怎么说,拿出来试下,这样才有资格评论谁更专业…..
原文链接是 http://xiaorui.cc/?p=1377
下面是我的测试的环境,nginx启动了4个worker ,然后nginx后端挂载了26个thrift server节点。
题外,现在几乎是每个hbase都有个thrift了, 我们部门只能是用这26个了,老大说 过段时间无锡会再增加40个节点供我们玩乐,听起来就好爽的样子…. …. 。
客户端方面是启动了分布式的测试环境,多个机器,每个机器16个独立进程,每个进程里面还有15个线程池,python操作hbase的模块用的是happybase,逻辑里面有批量入库的功能。
我这边的项目基本都会拆分成个大模块,然后每个模块为一个docker image,这样的好处就是极其容易扩展…. 也相当的容易改成分布式的架构….
这次的测试也都是在docker下进行的…..
root@bj-buzz-docker05:/#
root@bj-buzz-docker05:/# ps aux|grep nginx
root 21358 0.0 0.0 8812 776 ? S+ 18:30 0:00 grep –color=auto nginx
root 25070 0.0 0.0 31100 1724 ? Ss May05 0:00 nginx: master process nginx
root 25192 0.2 0.0 32272 2684 ? S May05 4:01 nginx: worker process
root 25193 0.3 0.0 33108 3436 ? S May05 4:35 nginx: worker process
root 25194 0.3 0.0 32664 3084 ? R May05 4:30 nginx: worker process
root 25195 0.2 0.0 32384 2836 ? S May05 3:39 nginx: worker process
root 25196 0.2 0.0 32072 2492 ? S May05 3:42 nginx: worker process
root@bj-buzz-docker05:/#dstat
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
60 2 36 0 0 2| 0 0 | 29M 13M| 0 0 | 56k 24k
73 3 22 1 0 2| 0 140k| 22M 19M| 0 0 | 47k 29k
68 2 29 0 0 1| 0 0 | 38M 26M| 0 0 | 45k 29k
71 3 25 0 0 2| 0 0 | 20M 19M| 0 0 | 50k 32k
73 2 24 0 0 1| 0 0 | 41M 39M| 0 0 | 42k 27k
74 2 22 0 0 2| 0 0 | 35M 32M| 0 0 | 56k 34k
78 2 19 0 0 1| 0 32k| 39M 26M| 0 0 | 45k 25k
63 3 32 0 0 2| 0 72k| 22M 13M| 0 0 | 53k 27k
66 2 29 0 0 2| 0 3408k| 57M 38M| 0 0 | 54k 27k
69 2 27 1 0 1| 0 132k| 17M 11M| 0 0 | 38k 24k
67 3 29 0 0 1| 0 3796k| 28M 19M| 0 0 | 45k 25k
66 3 29 0 0 2| 0 0 | 22M 2882k| 0 0 | 49k 25k
65 2 32 0 0 2| 0 0 | 44M 3598k| 0 0 | 52k 26k
71 2 26 0 0 1| 0 0 | 22M 20M| 0 0 | 44k 31k
71 2 26 0 0 1| 0 0 | 12M 4126k| 0 0 | 44k 24k
62 2 34 0 0 2| 0 52k| 29M 13M| 0 0 | 54k 28k
45 2 51 0 0 3| 0 0 | 49M 31M| 0 0 | 55k 21k
75 3 21 0 0 1| 0 0 | 18M 21M| 0 0 | 40k 25k
65 3 30 1 0 2| 0 96k| 44M 40M| 0 0 | 49k 31k
76 3 20 0 0 1| 0 0 | 30M 29M| 0 0 | 45k 32k
64 2 33 0 0 1| 0 0 | 39M 36M| 0 0 | 43k 28k
72 2 24 0 0 1| 0 0 | 21M 41M| 0 0 | 44k 25k
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
72 3 23 0 0 2| 0 108k| 33M 31M| 0 0 | 46k 29k
68 2 28 0 0 2| 0 28k| 38M 35M| 0 0 | 46k 30k
68 3 28 0 0 2| 0 76k| 41M 40M| 0 0 | 50k 33k
75 2 22 0 0 1| 0 0 | 34M 37M| 0 0 | 45k 23k
75 2 20 1 0 2| 0 104k| 20M 11M| 0 0 | 51k 28k
53 1 43 0 0 2| 0 3252k| 35M 18M| 0 0 | 58k 22k
74 3 21 0 0 2| 0 108k| 21M 15M| 0 0 | 50k 31k
71 2 24 0 0 2| 0 76k| 34M 42M| 0 0 | 48k 30k
69 2 28 0 0 1| 0 0 | 23M 40M| 0 0 | 40k 29k
75 2 23 0 0 1| 0 0 | 12M 11M| 0 0 | 38k 23k
72 2 25 0 0 1| 0 0 | 11M 10M| 0 0 | 41k 24k
73 3 23 0 0 1| 0 0 | 28M 18M| 0 0 | 41k 23k
root@bj-buzz-docker05:/# uptime
18:03:55 up 61 days, 3:08, 0 users, load average: 13.09, 13.04, 14.58
root@bj-buzz-docker05:/#
root@bj-buzz-docker05:/# free -m
total used free shared buffers cached
Mem: 80506 57402 23104 0 1032 47156
-/+ buffers/cache: 9213 71293
Swap: 0 0 0
root@bj-buzz-docker05:/#
根据cpu,内存和承载流量的大小,我这边基本可以判断出stream要比nginx_tcp_proxy_module稍微差那么一点点… 以前用nginx_tcp_proxy_module的时候,流量是可以长时间在100MB浮动的… 而用stream只能是在60MB上下的浮动,只是时不时的飙到90MB而已… 速度不是很稳…
[ali大吃]
世界太大还是遇见你,世界太小还是丢了你。
看起来不错,不知道能不能调度mail