Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298196
  • 博文数量: 127
  • 博客积分: 2286
  • 博客等级: 大尉
  • 技术积分: 1943
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-10 10:37
文章分类

全部博文(127)

文章存档

2018年(1)

2015年(2)

2014年(1)

2013年(30)

2012年(88)

2011年(5)

分类: Mysql/postgreSQL

2012-02-01 16:06:18

Testing the network speed
==========================================================================================

4 datanodes on 2 servers, test remotely

cpu 6,7 are busy on both node 3,4
Network NIC speed: RX:53MB/s Rx:50MB/s on node 2(run test on node2)
Network NIC speed: TX:50MB/s RX:53MB/s on node 3,4
-------------------------------------------------- 

/mysql/mysqlc718/bin/flexAsynch -ndbrecord -n -temp -a 2 -l 3 -con 8 -t 16 -p 100 -o 1000 -warmup_time 1000


insert average: 161075/s min: 153875/s max: 170212/s stddev: 4%
update average: 167642/s min: 158149/s max: 182836/s stddev: 6%
delete average: 186487/s min: 181179/s max: 192840/s stddev: 2%
read average: 229615/s min: 187025/s max: 273972/s stddev: 13%


4 datanodes on 2 servers, test on datanode

cpu 6,7 is busy on node 3
CPU 0,1,3,5 are very busy on node4
Network NIC speed: RX:119MB/s Rx: 76MB/s on node 3
Network NIC speed: TX: 75MB/s RX:119MB/s on node 4(run test on node 4)
--------------------------------------------------

/mysql/mysqlc718/bin/flexAsynch -ndbrecord -n -temp -a 2 -l 3 -con 8 -t 8 -p 400 -o 1000 -warmup_time 1000

insert average: 388932/s min: 357621/s max: 408475/s stddev: 5%
update average: 408243/s min: 406504/s max: 411205/s stddev: 0%
delete average: 437398/s min: 406194/s max: 453257/s stddev: 5%
read average: 842261/s min: 404142/s max: 1139601/s stddev: 31%


2 datanodes in one server,run the test localy, 80% cpus are busy
Network NIC speed:
lo: Tx:318MB/s Rx:318MB/s
--------------------------------------------------
/mysql/mysqlc718/bin/flexAsynch -ndbrecord -n -temp -a 2 -l 3 -con 8 -t 12 -p 200 -o 1000 -warmup_time 1000

insert average: 568274/s min: 555812/s max: 574575/s stddev: 1%
update average: 596434/s min: 594353/s max: 600450/s stddev: 0%
delete average: 602412/s min: 600600/s max: 603318/s stddev: 0%
read average: 1316408/s min: 878798/s max: 1424332/s stddev: 14%


 2 datanodes on 1 server, Run test remotedly, cpus are free on client:
eth1:Tx:115MB/s Rx:90MB/s
2 Data nodes on the same server:60% cpus are busy on datanodes
eth1: Tx:87MB/s Rx:112MB/s
lo: Tx:321MB/s Rx:321MB/s

--------------------------------------------------

/mysql/mysqlc718/bin/flexAsynch -ndbrecord -n -temp -a 2 -l 3 -con 8 -t 12 -p 400 -o 1000 -warmup_time 1000

insert average: 66824/s min: 65157/s max: 67662/s stddev: 1%
update average: 74091/s min: 73986/s max: 74247/s stddev: 0%
delete average: 70739/s min: 70663/s max: 70842/s stddev: 0%
read average: 119134/s min: 113848/s max: 122224/s stddev: 2%

For the 2 datanodes on the same server, and run test clinet remotely:
NIC lo reaches its max speed at 312MB/s when it is doing inserting, and eth1 reaches its max speed at 112MB/s when it is doing reading.
NIC lo is used for comunication between datanodes, and eth1 is used for comunication between clinet the datanode.



总结

==========================================================================================

忙的cpu是recv和TRPMAN线程,负责数据传输的,所以datanodes之间的网络速度是关键,千兆网卡的极限速度是120MB/s,如果datanodes的所有节点在同一server,用lo网卡尅到达321MB/s的速度,3备于千兆网卡


datanode不在同一server上的情况下,在datanode上跑测试很快,可能TC会优先在本地datanode上建立一个连接,这样会使用的高速的lo网卡.把sqlnode于某个datanode放到同一server应该会提高性能。

希望有人能验证这个理论


阅读(2039) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~