Author: admin | Category: 性能测试
Comments: 评论关闭

测试环境:

CPU:Xeon2.8G X2 
RAM:4G
OS:RedHat As5.3 X64

工具:apache ab
参数:ab -i -c 500 -n 100000

最终服务端:2个squid 需实现均衡负载

成绩如下:

####### Nginx + haproxy :  (由Nginx通过反向代理发送请求至haproxy, 并由其进行均衡负载)

Concurrency Level:      500
Time taken for tests:   53.758 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      38600386 bytes
HTML transferred:       0 bytes
Requests per second:    1860.19 [#/sec] (mean)
Time per request:       268.790 [ms] (mean)
Time per request:       0.538 [ms] (mean, across all concurrent requests)
Transfer rate:          701.21 [Kbytes/sec] received

####### haproxy :  (单独由haproxy进行均衡负载)

Concurrency Level:      500
Time taken for tests:   32.562 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      36606588 bytes
HTML transferred:       0 bytes
Requests per second:    3071.02 [#/sec] (mean)
Time per request:       162.812 [ms] (mean)
Time per request:       0.326 [ms] (mean, across all concurrent requests)
Transfer rate:          1097.85 [Kbytes/sec] received

####### nginx : (单独由nginx进行均衡负载)

Concurrency Level:      500
Time taken for tests:   36.539 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      38600000 bytes
HTML transferred:       0 bytes
Requests per second:    2736.82 [#/sec] (mean)
Time per request:       182.694 [ms] (mean)
Time per request:       0.365 [ms] (mean, across all concurrent requests)
Transfer rate:          1031.65 [Kbytes/sec] received

反复测试,得出其结果:

Haproxy 单独进行均衡负载的性能最强,超过了Nginx。
然而 Nginx + Haproxy 的搭配性能最弱,应该是跟通过了2层反向代理有关。

所以想用 Haproxy 替代 Nginx 所自带的均衡负载功能将会令性能打折。
但 Nginx 的配置法则确远比 Haproxy 灵活。

还是视乎用途而决定吧。

Author: admin | Category: Linux & Unix, 性能测试
Comments: 评论关闭

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。
它主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。

一、安装
首先,在 http://sourceforge.net/projects/sysbench 下载源码包。
接下来,按照以下步骤安装:

[root@node2 ~]# tar zxvf sysbench-0.4.8.tar.gz

[root@node2 ~]# cd sysbench-0.4.8

[root@node2 sysbench-0.4.8]# ./configure –with-mysql-includes=/usr/local/include/mysql –with-mysql-libs=/usr/local/lib/mysql

[root@node2 sysbench-0.4.8]# make && make install

安装完毕后,如果在运行时出现下面的错误提示:

sysbench: error while loading shared libraries: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

使用下面的命令查看libmysqlclient_r.so.16是否存在

[root@node2 sysbench-0.4.8]# find / -name “libmysqlclient_r.so.16″ -print

/usr/local/lib/mysql/libmysqlclient_r.so.16

结果显示是存在的,那么我们需要做个链接

[root@node2 sysbench-0.4.8]# ln -s /usr/local/lib/mysql/libmysqlclient_r.so.16 /lib/libmysqlclient_r.so.16

如果没有,可以自己下载 devel 或者 share 包来安装。

[separator]

二、开始测试
编译成功之后,就要开始测试各种性能了,测试的方法官网网站上也提到一些,但涉及到 OLTP 测试的部分却不够准确。在这里我大致提一下:
1、cpu性能测试

sysbench --test=cpu --cpu-max-prime=20000 run

cpu测试主要是进行素数的加法运算,在上面的例子中,指定了最大的素数为 20000,自己可以根据机器cpu的性能来适当调整数值。

2、线程测试

sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run

3、磁盘IO性能测试

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup

上述参数指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。

4、内存测试

sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run

上述参数指定了本次测试整个过程是在内存中传输 4G 的数据量,每个 block 大小为 8K。

5、OLTP测试

sysbench --test=oltp --mysql-table-engine=ndbcluster --oltp-table-size=1000000 --num-threads=30
--mysql-socket=/usr/local/var/mysql.sock --mysql-user=root --mysql-host=10.0.0.11
--mysql-db=backup prepare

上述参数指定了本次测试的表存储引擎类型为 ndbcluster。另外,指定了表最大记录数为 1000000,其他参数就很好理解了,主要是指定登录方式。测试 OLTP 时,可以自己先创建数据库 sbtest,或者自己用参数 –mysql-db 来指定其他数据库,我这里指定了数据库backup。–mysql-table-engine 还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。

Top
RSS for entries