前言:本人2014年2月18日编写的服务器性能测试培训文档,供新员工学习。
地址:http://linuxpython.blog.51cto.com/10015972/1643910
第一部分:服务器性能测试
一、了解测试工具sysbench
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。
数据库目前支持MySQL/Oracle/PostgreSQL。
二、学习安装sysbench
1.编译安装
#wget -c http://sourceforge.net/projects/sysbench/files/sysbench/0.4.12/sysbench-0.4.12.tar.gz/download
#tar zxvf sysbench-0.4.12.tar.gz
#cd sysbench-0.4.12
#./configure && make && make install
如果需要测试Oracle/PostgreSQL,则在configure时需要加上--with-oracle或者--with-pgsql参数
2.debian 源安装
apt-get install sysbench
三、学习使用sysbench
测试项目:
fileio �C File I/O test
cpu �C CPU performance test
memory �C Memory functions speed test
threads �C Threads subsystem performance test
mutex �C Mutex performance test(互斥性能测试)
oltp �C OLTP test
指令: prepare(测试前准备工作) run(正式测试) cleanup(测试后删掉测试数据) help version
1.cpu测试 ./sysbench --test=cpu --cpu-max-prime=20000 run
2.线程数测试 ./sysbench --test=threads --num-threads=512 --thread-yields=100 --thread-locks=2 run
3.磁盘I/O性能测试
./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
4.内存测试 ./sysbench --test=memory --num-threads=64 --memory-block-size=8192 --memory-total-size=5G run
5. Mutex测试
./sysbench --test=mutex --num-threads=1500 --max-requests=2000 --mutex-num=10240 --mutex-locks=100000 --mutex-loops=15000 run
四、学习dd工具测试IO
往磁盘中写入1G文件,检查所消耗的时间,磁盘的传输速率,如下
dd if=/dev/zero of=img.img bs=1M count=10240
第二部分:网络性能测试
一、学习使用iperf工具
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。
1.TCP测试
服务器执行:./iperf -s -i 1 -w 1M '这�Y是指定windows如果是 iperf -s则windwos默认大小为8kbyte/s
客户端执行:./iperf -c host -i 1 -w 1M
其中-w表示TCP window size,host需替换成服务器地址。
2.UDP测试
服务器执行:./iperf -u -s
客户端执行:./iperf -u -c 10.255.255.251 -b 900M -i 1 -w 1M -t 60
其中-b表示使用多少带宽,1G的线路你可以使用900M进行测试。
二、学习使用iptraf工具
Iptraf是一款linux环境下,监控网络流量的一款绝佳的免费小软件,特别是安装到防火墙上,与Iptables一起工作,监控流经防火墙的网络异常,效果非常好。
三、学习使用smokeping工具
Smokeping 主要是监视网络性能,包括常规的 ping,用 echoping 监视 www 服务器性能,监视 dns 查询性能,监视 ssh 性能等。底层也是 rrdtool 做支持,特点是画的图非常漂亮,网络丢包和延迟用颜色和阴影来表示。
第三部分:数据库性能测试
一、学习使用sysbench工具
首先需要创建默认的sbtest数据库,或者使用�Cmysql-db指定一个已经存在的数据库
生成测试数据,引擎为myisam,表大小为1000000条记录
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-user=root --mysql-password=admin --mysql-socket=/tmp/mysqld.sock prepare
执行测试
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-user=root --mysql-password=admin --mysql-socket=/tmp/mysqld.sock run
清理现场
./sysbench--test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 \
--mysql-user=root --mysql-socket=/opt/mysql/run/mysql.sock cleanup
二、学习使用mysqlslap工具
(1)执行一次测试,分别100和200个并发,执行1000次总查询,测试两种存储引擎
mysqlslap -S /tmp/mysqld.sock -u root -padmin -T -a -c 100,200 --number-of-queries=1000 -x 4 -y 4 -e myisam,innodb -i 5
(2)分别50,100,200个并发,执行20次查询
mysqlslap -uroot -padmin --concurrency=50,100,200 --iterations=20 --number-int-cols=4 --number-char-cols=35 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=read --engine=archive,innodb --number-of-queries=200 --verbose --socket=/tmp/mysqld.sock
三、学习使用慢查询工具mysqlsla(测试select,update性能)
mysqlsla -lt slow -sf "+select,update" -top 100 -sort c_sum -db userbehavior dowload_server1-slow.log >num_time.log
第四部分:WEB压力测试
一、 学习webbench工具
1. 学习安装webbench
# wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
# tar zxvf webbench-1.5.tar.gz
# cd webbench-1.5
# make && make install
2. 学习使用webbench
# webbench -c 500 -t 30 http://127.0.0.1/test.jpg
参数说明:-c表示并发数,-t表示时间(秒)
二、学习loadrunner工具
1.学习安装loadrunner
2.学习使用loadrunner
三、学习ab工具(适用于apache)
1. ab -n1000 -c100 http://www.xxx.com/xx.html
其中-n代表请求数,-c代表并发数
模拟100个并发用户,对一个页面发送1000个请求
学习服务器实时性能分析数据
Iptraf(查网卡带宽)
Top (查CPU,MEM,LOAD等性能情况)
Vmstat 3(CPU性能检查)
Iostat �Cx 3(查IO实时情况)
本文出自 “黄怡善的运维博客” 博客,谢绝转载!