-
Notifications
You must be signed in to change notification settings - Fork 41
oneproxy monitor在Linux下的高性能转发能力
目前oneproxy-monitor支持两种多复用io操作方法,分别是select 和 epoll。在Linux下面针对epoll方式进行了压测,在我们的环境上面能够压测到34Wtps左右。下面来介绍下具体压测的情况:
- 部署情况
pgbench所在主机:172.30.12.8
oneproxy-monitor所在主机:172.30.12.10
数据库所在主机:172.30.12.12, 172.30.12.9, 172.30.12.7, 172.30.12.6
通过oneproxy-monitor启动四个端口分别为9999,8888,7777,6666。pgbench通过连接oneproxy-monitor的9999端口查询172.30.12.12上面的数据,通过8888查询172.30.12.9上面的数据,依次类推。
- oneproxy-monitor所在主机配置情况
操作系统版本:Linux localhost.localdomain 2.6.32-573.7.1.el6.×8664 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x8664 GNU/Linux
cpu:Intel® Xeon® CPU E5620 @ 2.40GHz, 16个cpu
网络:1000Mb/s
- 测试情况
查询172.30.12.12数据库的tps情况:
progress: 275.0 s, 98815.2 tps, lat 2.528 ms stddev 1.651
progress: 280.0 s, 99434.2 tps, lat 2.512 ms stddev 1.629
progress: 285.0 s, 98896.0 tps, lat 2.525 ms stddev 1.579
progress: 290.0 s, 98853.8 tps, lat 2.527 ms stddev 1.772
progress: 295.0 s, 99795.1 tps, lat 2.502 ms stddev 1.529
progress: 300.0 s, 99969.5 tps, lat 2.498 ms stddev 1.596
progress: 305.0 s, 98306.8 tps, lat 2.540 ms stddev 1.738
progress: 310.0 s, 98542.7 tps, lat 2.534 ms stddev 1.475
progress: 315.0 s, 98513.2 tps, lat 2.535 ms stddev 1.622
progress: 320.0 s, 98521.6 tps, lat 2.535 ms stddev 1.675
progress: 325.0 s, 99167.8 tps, lat 2.518 ms stddev 2.033
progress: 330.0 s, 99781.4 tps, lat 2.503 ms stddev 1.519
查询172.30.12.9数据库的tps情况:
progress: 290.0 s, 89692.0 tps, lat 2.226 ms stddev 1.737
progress: 295.0 s, 89377.3 tps, lat 2.234 ms stddev 1.820
progress: 300.0 s, 88779.1 tps, lat 2.249 ms stddev 2.048
progress: 305.0 s, 89219.3 tps, lat 2.238 ms stddev 1.637
progress: 310.0 s, 90408.0 tps, lat 2.209 ms stddev 1.831
progress: 315.0 s, 89213.2 tps, lat 2.239 ms stddev 1.880
progress: 320.0 s, 89992.3 tps, lat 2.217 ms stddev 2.479
progress: 325.0 s, 88660.2 tps, lat 2.253 ms stddev 1.650
progress: 330.0 s, 89563.5 tps, lat 2.229 ms stddev 1.907
progress: 335.0 s, 88546.6 tps, lat 2.255 ms stddev 1.751
progress: 340.0 s, 89067.1 tps, lat 2.242 ms stddev 2.019
progress: 345.0 s, 89406.5 tps, lat 2.233 ms stddev 1.846
progress: 350.0 s, 89100.1 tps, lat 2.241 ms stddev 1.887
查询172.30.12.7数据库的tps情况:
progress: 340.0 s, 90368.5 tps, lat 2.209 ms stddev 1.764
progress: 345.0 s, 90797.7 tps, lat 2.198 ms stddev 1.843
progress: 350.0 s, 90097.5 tps, lat 2.215 ms stddev 1.742
progress: 355.0 s, 90592.6 tps, lat 2.204 ms stddev 1.866
progress: 360.0 s, 88916.6 tps, lat 2.245 ms stddev 1.834
progress: 365.0 s, 90060.7 tps, lat 2.217 ms stddev 2.162
progress: 370.0 s, 90727.0 tps, lat 2.201 ms stddev 2.140
查询172.30.12.6数据库的tps情况:
progress: 340.0 s, 67036.2 tps, lat 2.980 ms stddev 2.606
progress: 345.0 s, 66560.6 tps, lat 3.002 ms stddev 1.997
progress: 350.0 s, 67919.6 tps, lat 2.942 ms stddev 2.043
progress: 355.0 s, 67734.4 tps, lat 2.950 ms stddev 2.256
progress: 360.0 s, 67533.1 tps, lat 2.958 ms stddev 1.987
progress: 365.0 s, 67995.6 tps, lat 2.939 ms stddev 2.055
progress: 370.0 s, 67397.5 tps, lat 2.965 ms stddev 2.042
oneproxy-monitor主机的情况:
top – 23:51:49 up 31 days, 11 min, 2 users, load average: 9.95, 7.66, 3.81
Tasks: 534 total, 1 running, 533 sleeping, 0 stopped, 0 zombie
Cpu(s): 38.3%us, 37.4%sy, 0.0%ni, 2.2%id, 0.0%wa, 0.0%hi, 22.1%si, 0.0%st
Mem: 32865576k total, 31489364k used, 1376212k free, 241384k buffers
Swap: 16498684k total, 0k used, 16498684k free, 16789192k cached
11491 root 20 0 210m 10m 1716 S 1562.1 0.0 125:02.26 mainThread
11924 root 20 0 15440 1592 928 R 1.6 0.0 0:00.14 top
oneproxy-monitor主机的网络情况:
[root@localhost ~]# ./linuxmon_x64.bin
-—————————-CPU——————————— -———Memory————- -————————-NetWork———————————— -————-Disk——————-
www.AnySQL.net Load Run Blk Proc SY/WI/US/IR/ID Irq Ctxt Fork PgIO SwIO Free Page Cach NetI NetO Err NR TcpU TcpA TcpW ActC PsvC Fail Rest Read RTim Writ WTim Busy Time
09/25-23:52:55 9.88 17 0 698 37/ 0/37/22/ 4 135K 42K 0 0 0 1G 37M 16G 89M 89M 0 0 1714 1730 0 0 0 0 0 0 0 0 0 0 0
09/25-23:52:56 9.88 17 0 701 36/ 0/38/21/ 5 176K 32K 4 0 0 1G 37M 16G 88M 88M 0 0 1714 1725 0 0 0 0 0 0 0 0 0 0 0
09/25-23:52:57 9.89 16 0 698 36/ 0/38/22/ 4 137K 26K 0 0 0 1G 37M 16G 88M 88M 0 0 1714 1730 0 0 5 0 0 0 0 0 0 0 0
09/25-23:52:58 9.89 17 0 701 36/ 0/38/22/ 4 178K 34K 4 0 0 1G 38M 16G 88M 88M 0 0 1714 1730 0 0 0 0 0 0 0 0 0 0 0
09/25-23:52:59 9.89 17 0 698 37/ 0/37/22/ 4 136K 40K 0 16 0 1G 37M 16G 89M 89M 0 0 1714 1730 0 0 0 0 0 0 0 2 0 0 5
09/25-23:53:00 9.89 17 0 698 37/ 0/37/22/ 4 135K 44K 0 0 0 1G 37M 16G 88M 88M 0 0 1714 1730 0 0 0 0 0 0 0 0 0 0 0
则通过上面的测试情况可以知道,在oneproxy-monitor所在主机cpu达到1562.1%,网络流量达到了88M时,oneproxy-monitor的转发能力可以达到34Wtps。