linux下压力测试剖析.docx
- 文档编号:9012586
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:8
- 大小:70.51KB
linux下压力测试剖析.docx
《linux下压力测试剖析.docx》由会员分享,可在线阅读,更多相关《linux下压力测试剖析.docx(8页珍藏版)》请在冰豆网上搜索。
linux下压力测试剖析
一、ab测试
站点的压力测试
工具1:
apache benchmark 简称 ab
在安装httpd软件包时ab 就已经安装,/usr/bin/ab
ab的用法:
先打开hosts文件添加一条记录apache服务器的地址 与站点的映射
ulimit-n65536
ab -c 一次并发请求的次数
-n 总共请求的次数
二、http-load测试
一、http_load
程序非常小,解压后也不到100K
http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。
但是它不同于大多数压力测试工
具,它可以以一个单一的进程运行,一般不会把客户机搞死。
还可以测试HTTPS类的网站请求。
下载地址:
安装很简单
#tarzxvfhttp_load-12mar2006.tar.gz
#cdhttp_load-12mar2006
#make&&makeinstall
命令格式:
http_load -p并发访问进程数 -s访问时间 需要访问的URL文件
参数其实可以自由组合,参数之间的选择并没有什么限制。
比如你写成http_load-parallel5-seconds
300urls.txt也是可以的。
我们把参数给大家简单说明一下。
-parallel简写-p:
含义是并发的用户进程数。
-fetches简写-f:
含义是总计的访问次数
-rate 简写-p:
含义是每秒的访问频率
-seconds简写-s:
含义是总计的访问时间
准备URL文件:
url,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好.文件格式
#caturl
41fetches,1020maxparallel,851898bytes,in10.0008seconds
#一共请求连接41次,最大并发线程1020个,持续10.0008秒内,总传输速率为851898bytes
20778meanbytes/connection
#每次请求连接平均数据量(851898÷41)
4.09969fetchesc,85183.3bytesc
#每秒的响应请求连接数为4.09969个,每秒传输的数据为85183.3btyes/毫秒
msecs/connect:
264.607mean,269.482max,262.187min
#每次连接平均响应时间:
264.607毫秒,最大时间:
269.482毫秒,最小时间:
262.187毫秒
msecs/first-response:
1949.27mean,5394.21max,380.501min
#每次连接平均返回时间:
1949.27毫秒,最大时间:
5394.21毫秒,最小时间:
380.501毫秒
HTTPresponsecodes:
code200--41#HTTP返回码:
200,一共41次。
测试结果:
同时20个线程时:
一分钟内4572个连接,每秒钟响应的请求是76.2个,每次连接平均响应时间3.6毫秒,每次连接平均返回时间230.44毫秒。
成功获取页面4572次。
同时40个线程时:
一分钟内4660个连接,每秒钟响应的请求是77.6个,每次连接平均响应时间6.6毫秒,每次连接平均返回时间452.5毫秒。
成功获取页面4660次。
同时60个线程时:
一分钟内4640个连接,每秒钟响应的请求是77.3个,每次连接平均响应时间10.1毫秒,每次连接平均返回时间682.22毫秒。
成功获取页面4640次。
同时80个线程时:
一分钟内4585个连接,每秒钟响应的请求是76.4个,每次连接平均响应时间11.7毫秒,每次连接平均返回时间936.02毫秒。
成功获取页面4585次
三、压力测试的一些思路
之前如果建立ssh连接,
只要將公鑰複製到~/.ssh/authorized_keys就可以利用金鑰登入
而不需要建立密碼.
現在的ssh使用同樣的方法會出現錯誤訊息
Agentadmittedfailuretosignusingthekey
解決方式使用ssh-add指令將私鑰加進來(根据个人的密匙命名不同更改id_rsa)
#ssh-add ~/.ssh/id_rsa
#crontab-e(以root的用户身份创建的任务表)
#0009-18**5/usr/bin/uptime>>/var/tmp/uptime_record
#0009-18**5/usr/bin/iostat-t-x>>/var/tmp/iostat_record
#00,01,05,10,15,20,25,30,25,30,35,40,45,50,55****/usr/bin/uptime>>/var/tmp/uptime.log
#00,01,05,10,15,20,25,30,25,30,35,40,45,50,55****/usr/bin/iostat-t-x>>/var/tmp/iostat.log
39,40,45,50,55****/usr/bin/uptime>>/var/tmp/uptime.log
39,40,45,50,55****/usr/bin/iostat-t-x>>/var/tmp/iostat.log
#servicecrondrestart
四、采集一些系统信息的命令
iostat
iostat命令详解
用途
报告中央处理器(CPU)统计信息和整个系统、适配器、tty设备、磁盘和CD-ROM的输入/输出统计信息。
语法
iostat[-x][-t][-d|-k][-m][PhysicalVolume...][Interval[Count]]
-d标志,指定显示指定的设备,不指定的话表示显示所有的磁盘及所有的分区
-t,在屏幕中打印时间
-m,以MB单位显示输出
-k,以KB单位显示输出
-x,显示扩展信息(详细信息)
PhysicalVolume参数,那么可以指定一个或者更多的字母或者字母数字的物理卷。
Interval参数指定了在每个报告之间的以秒计算的时间量。
Count参数,它的记数值就确定在Interval秒间生成的报告
$iostat-x1
Linux2.6.18-308.4.1.el5xen(xiazai)05/07/2012
avg-cpu:
%user%nice%system%iowait%steal%idle
0.010.000.010.080.0099.90
Device:
rrqm/swrqm/sr/sw/srsec/swsec/savgrq-szavgqu-szawaitsvctm%util
sda0.0911.300.221.585.94100.7359.430.0529.003.390.61
sda10.000.000.000.000.000.0026.000.009.116.470.00
sda20.001.300.010.020.6510.54415.370.0084.692.270.01
sda30.011.590.110.022.9712.87122.260.0139.711.290.02
sda40.000.000.000.000.000.002.000.0010.6710.670.00
sda50.020.170.050.071.251.8627.400.0019.593.140.04
sda60.010.160.010.100.232.0921.470.0018.786.230.07
sda70.000.520.020.300.246.5321.330.008.605.240.17
sda80.000.000.000.000.000.0046.030.00146.9776.100.00
sda90.000.000.000.000.000.0127.470.0019.129.120.00
sda100.057.570.021.080.6066.8361.350.0434.243.760.41
rrqm/s:
每秒进行merge的读操作数目。
(读的合并次数)
wrqm/s:
每秒进行merge的写操作数目。
减少磁盘寻道时间(写的合并次数)
r/s:
经过合并后每秒完成的读I/O设备次数。
w/s:
经过合并每秒完成的写I/O设备次数。
rsec/s:
每秒读扇区数。
wsec/s:
每秒写扇区数。
avgrq-sz:
平均每次设备I/O操作的数据大小(扇区)。
avgqu-sz:
平均I/O队列长度。
await:
平均每次设备I/O操作的等待时间(毫秒)。
此时间包括io排队的时间
svctm:
平均每次设备I/O操作的服务时间(毫秒)。
表示花寻道时的时间
%util:
一秒中CPU有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。
注:
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
svctm一般要小于await(因为同时等待的请求的等待时间被重复计算了),svctm的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致svctm的增加。
await的大小一般取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模式。
如果svctm比较接近await,说明I/O几乎没有等待时间;如果await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核elevator算法,优化应用,或者升级CPU。
队列长度(avgqu-sz)也可作为衡量系统I/O负荷的指标,但由于avgqu-sz是按照单位时间的平均值,所以不能反映瞬间的I/O洪水
uptime
Linux系统监控的过程中少不了对主机运行时间和系统负责等信息进行查询,这时候就可以使用Linuxuptime命令。
uptime命令可以显示系统运行多久、当前有多少的用户登录、在过去的1,5,15分钟里平均负载时多少,其用法十分简单。
uptime命令用法十分简单:
直接输入
#uptime
即可。
输入样例:
18:
02:
41up41days,23:
42,1user,loadaverage:
0.00,0.00,0.00
1可以被认为是最优的负载值。
负载是会随着系统不同改变得。
单CPU系统1-3和SMP(多处理机)系统6-10都是可能接受的。
另外还有一个参数-V,是用来查询版本的。
(注意是大写的字母v)
[linux@localhost]$uptime-V
procpsversion3.2.7
[linux@localhost]$uptime
显示结果为:
10:
19:
04up257days,18:
56,12users,loadaverage:
2.10,2.10,2.09
显示内容说明:
10:
19:
04//系统当前时间
up257days,18:
56//主机已运行时间,时间越大,说明你的机器越稳定。
12user//用户连接数,是总连接数而不是用户数
loadaverage//系统平均负载,统计最近1,5,15分钟的系统平均负载
那么什么是系统平均负载呢?
系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。
如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
如果你的linux主机是1个双核CPU的话,当LoadAverage为6的时候说明机器已经被充分使用了。
查看cpu的核心数
linux下查看机器是cpu是几核的几个cpu
more/proc/cpuinfo|grep"physicalid"|uniq|wc-l
每个cpu是几核(假设cpu配置相同)
more/proc/cpuinfo|grep"physicalid"|grep"0"|wc-l
cat/proc/cpuinfo|grepprocessor
1.查看物理CPU的个数
#cat/proc/cpuinfo|grep"physicalid"|sort|uniq|wc-l
2.查看逻辑CPU的个数
#cat/proc/cpuinfo|grep"processor"|wc-l
3.查看CPU是几核
#cat/proc/cpuinfo|grep"cores"|uniq
4.查看CPU的主频
#cat/proc/cpuinfo|grepMHz|uniq
很多人都知道,直接敲cat/proc/cpuinfo可以看到详细的cpu信息.
信息里会分processor0-n,如果你认为n就是cpu真实核数的话,就大错特错了.
我们知道intel有超线程技术(HT),它可以在逻辑上分一倍数量的cpu出来.所以,光看processor数量是不准的.
真实的核数,应该是cpucores这个参数值.
[admin@transmit180logs]$cat/proc/cpuinfo
processor :
0
vendor_id :
GenuineIntel
cpufamily :
6
model :
15
modelname :
Intel(R)Xeon(R)CPU E5310 @1.60GHz
stepping :
7
cpuMHz :
1596.035
cachesize :
4096KB
physicalid :
0
siblings :
4
coreid :
0
cpucores :
4
fdiv_bug :
no
hlt_bug :
no
f00f_bug :
no
coma_bug :
no
fpu :
yes
fpu_exception :
yes
cpuidlevel :
10
wp :
yes
flags :
fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsacpimmxfxsrssesse2sshttmpbenxlmconstant_tscpnimonitords_cpltm2xtpr
bogomips :
3194.26
物理cpu数量,可以数不重复的physicalid有几个。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 压力 测试 剖析