服务器压力测试_工具


Time:2023-07-14 04:37:08

关于服务器压力测试的问题,我们总结了以下几点,给你解答:

服务器压力测试


服务器压力测试

  对于访客量大的网站来说,做好网站压力测试有助于掌握网站负载值,及时做好应对工作。比如视频网站、购物网站,在特殊节假日访客量激增的时候,我们常常遇到网站宕机崩溃的现象,那么做好网站压力测试就能有效的发现网站运行期间出现的bug,验证系统过载时的数据情况。那么什么是网站压力测试,常见的压力测试解决方法有哪些呢?

  一、什么是网站压力测试?

  网站压力测试是软件测试的一种测试类型,是通过给网站施加更多的数据及用户量来判定系统状态、错误处理能力、最大负载的一种测试方法。网站压力测试需要在不同软硬件平台环境下进行多用户测试,是正确评估系统性能的方式之一。

  二、压力测试方法有哪些?

  压力测试只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题。现在很多的压力测试都需要自动化测试工具辅助进行,通过测试工具执行测试命令,在不断增加用户的情况下,分析网站的承载能力。比如可以通过ab程序对服务器进行访问压力测试。

  三、常见的压力测试流程

  1、确定测试业务范围、场景;首先确定压力测试范畴,测试数据库、测试用例设计等。压力测试一般对环境的要求比较高,明确需要用到的技术工具及搭建的测试场景,做好基本硬件及软件环境准备。

  2、存量数据规模;制造充足的存量数据进行测试。

  3、确定操作用户数量、时间要求等;通过测试工具模拟操作用户数量,用户同时在线数量等,以及不同用户值情况下系统的响应时间等。

  4、记录测试过程中的问题;及时记录压力测试过程中暴露出来的问题,比如出现严重错误时系统反应及自动修复时间,最后提交给开发人员进行修复。

  5、分析总结;做好压力测试总结工作,对压力测试过程中执行的细节及出现的问题整理成文档,方便技术人员日后查阅。

服务器压力测试平台


服务器压力测试平台

controller——systerm resource graphs——选择windows或者unix Resources

点右键,选择 add Measurement-add-输入IP和操作系统

服务器压力测试工具


服务器压力测试工具


linux磁盘或者其他类型服务器压力测试的几款工具简介 ㈠ dd:从一个源读取数据然后以比特形式写到另一走粮下话十空苦夜牛逐晶个目标地址[sql][root@linwate室仅效附西周rbin ~]# dd if=/dev/zero of=/hom刻e/oracle/disk开露校针决失找test bs=1M count=512 conv=fdatasync www.dnjsb.com 注释 if:从哪来 of:往哪去 bs:每次读取的数据块大小 count:读多少个bs conv:消除linux内存缓存的影响,保证数据直接写入磁盘 测试步骤: 建议运行多次取平均值,并且每次运行前把linux缓存清理[sql] www.dnjsb.com [root@linwaterbin ~]# 刘兵得echo 3 > /proc/sy学妒时几谓s/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/h跳阻现紧你ome/oracle/亮植督乡握确越当因协根disktest bs=1M count=512 con雨上逐客v=fdatasync 512+0 records in 512+0 饭六曾装养材宗般records out 536查委神就战果查反督870912 bytes (状537 MB) copied, 27.4893 seconds, 19.5 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/dro严于评镇室助p_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs联另脚房任支=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 53687举反而燃0912 bytes (537 MB) copied, 17.3697 seconds, 30.9 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 14.9991 seconds, 35.8 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 15.2154 seconds, 35.3 MB/s 19.5 MB/s + 30.9 MB/s + 35.8 MB/s + 35.3 MB/s这几个值相加取平均 ㈡ hdparm 有两个参数: -t:磁盘性能检测 -T:内存缓存性能检测 同样建议多次测试取平均[sql][root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 226 MB in 3.02 seconds = 74.82 MB/sec [root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 244 MB in 3.10 seconds = 78.59 MB/sec [root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 246 MB in 3.12 seconds = 78.87 MB/sec 以上两个工具,仅仅返回的是读写性能,测试比较简单 使用bonnie++或iozone生成较详细的磁盘报告 安装之前需先做如下配置 到repoforge网站下载对应版本[plain][root@linwaterbin Desktop]# rpm -ivh --nodeps rpmforge-release-0.5.2-2.el5.rf.i386.rpm warning: rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6 Preparing... ########################################### [100%] 1:rpmforge-release ########################################### [100%] [root@linwaterbin Desktop]# cd /etc/yum.repos.d [root@linwaterbin yum.repos.d]# ls base.repo mirrors-rpmforge-extras redhat.repo rpmforge.repo mirrors-rpmforge mirrors-rpmforge-testing rhel-debuginfo.repo ㈢ bonnie++ 安装:[plain][root@linwaterbin yum.repos.d]# yum install -y bonnie++ 首先说明一下命令中常用的参数。 -d 生成测试文件的路径 -s 生成测试文件的大小,以M为单位(如果不使用-r参数,则要求文件大小至少是系统物理内存的2倍) -m 机器名,实际上我们可以认为是本次测试的方案名,可以随便定义。默认是本机的hostname -r 内存大小,指定内存大小,这样可以通过-s参数创建r*2大小的文件,通常用于缩短测试时间 但是需要注意这样由于内存的cache可能导致测试结果的不准确 -x 测试的次数 -u 测试文件的属主和组,默认是执行bonnie++的当前用户和当前组 -g 测试文件的组,默认是执行bonnie++的当前用组 -b 在每次写文件时调用fsync()函数,对于测试邮件服务器或者数据库服务器这种通常需要同步操作的情况比较适合, 而不使用该参数则比较适合测试copy文件或者编译等操作的效率[sql][root@linwaterbin ~]# bonnie++ -s 512 -r 256 -u root 主要输出摘入:[plain]Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP linwaterbin 512M 217 99 32403 14 13798 7 378 99 49235 10 347.0 3 Latency 154ms 2218ms 2099ms 125ms 63304us 2672ms Version 1.96 ------Sequential Create------ --------Random Create-------- linwaterbin -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15508 52 +++++ +++ +++++ +++ 27215 91 +++++ +++ +++++ +++ Latency 43819us 20118us 19580us 19834us 19699us 20435us ⑴ Sequential Output:写操作 ① Per Chr:字符 ② Block:块 ⑵ Sequential Input:读操作 ⑶ K/sec:速度(k/秒) ⑷ %CP:CPU的使用率 ㈣ iozone 可支持多进程并发测试 能够输出到excel中进行绘图 也是日常压力测试用得最多的一款工具 安装:[plain][root@linwaterbin ~]# yum install -y iozone 参数说明: -l:最小进程数量 -u:最大进程数量 -r:基本读写单位,以测试对象的块大小为准 如Oracle的块设为8k,则你可以设置为8k -s:和bonnie++的s参数含义一致 这个值如果太小会影响测试结果 因为很多程序都已经在内存中跑完了 -f:缓存文件[plain][root@linwaterbin ~]# iozone -l 1 -u 1 -r 8K -s 128M Record Size 8 KB File size set to 131072 KB Command line used: iozone -l 1 -u 1 -r 8K -s 128M Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. Min process = 1 Max process = 1 Throughput test with 1 process Each process writes a 131072 Kbyte file in 8 Kbyte records Children see throughput for 1 initial writers = 125057.24 KB/sec Parent sees throughput for 1 initial writers = 30640.70 KB/sec Min throughput per process = 125057.24 KB/sec Max throughput per process = 125057.24 KB/sec Avg throughput per process = 125057.24 KB/sec Min xfer = 131072.00 KB Children see throughput for 1 rewriters = 513780.34 KB/sec Parent sees throughput for 1 rewriters = 31989.50 KB/sec Min throughput per process = 513780.34 KB/sec Max throughput per process = 513780.34 KB/sec Avg throughput per process = 513780.34 KB/sec Min xfer = 131072.00 KB Children see throughput for 1 readers = 889758.12 KB/sec Parent sees throughput for 1 readers = 849615.75 KB/sec Min throughput per process = 889758.12 KB/sec Max throughput per process = 889758.12 KB/sec Avg throughput per process = 889758.12 KB/sec Min xfer = 131072.00 KB 这里的值都很大,是因为我们的s参数设置的有点小.

本文拓展问题:

服务器压力测试怎么做服务器压力测试方法服务器压力测试脚本服务器压力测试