《大型网站服务器容量规划》一3.2 通过压力测试规划容量

简介:

本节书摘来异步社区《大型网站服务器容量规划》一书中的第3章,第3.2节,作者: 郑钢 责编: 张涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.2 通过压力测试规划容量

为了获得系统的容量,专业一点的公司都会让运维人员搭建一套线下的测试环境,让QA在线下测试,通过压力测试并结合监控来找出系统的极限值。最常见的压力测试工具有ab(Apache Bench)和Jmeter,它们是Apache项目提供的,可以在Apache官网中找到,还有LoadRunner也很不错。

虽然压力测试是以实际请求来度量容量,看似是最真实的,但这种做法其实并不准确,因为系统的实际压力负载和业务对应的具体指令紧密相关,而压力测试通常仅做一次,其结果仅与当时的业务代码相匹配,但凡有新代码上线后,由于涉及代码不同,其对应的指令通常也会不同,因此之前所做的压力测试便被推翻了。

也许有读者说,可以让QA人员每次都在新代码上线前都做回归测试。其实这一点并不靠谱,这说明不了解QA的工作。压力测试中要检查(也称回归测试)的测试用例非常多,这需要QA人员极大的耐心,而且线下测试机往往用淘汰下的机器,其性能与线上服务器的性能差别很大,这注定了测试结果的不准确性。

既然压力测试也不完全靠谱,那应该怎么做呢?有的公司是这样做的,用真实流量导向待测试的服务器,也就是用线上实际压力去做压力测试,观察机器负载或日志,直到出错为止。

如果集群中原本有10台服务器,先去掉其中的4台服务器,只让剩下的6台服务器提供服务,测试人员通过观察机器压力负载或日志中输出的信息等手段来判定服务的稳定性。如果服务正常的话,继续从集群中下掉一些服务器,直到服务器压力越来越大,线上业务报错为止。毋容置疑,这肯定是最真实的测试结果。当然这需要魄力,哈哈……反正我不敢,无论业务是多么不重要,也不能牺牲用户体验来测试极限容量。

相关文章
|
6天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
1月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
109 32
|
1月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
82 31
|
1月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
41 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
55 3
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
39 1
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
1月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度
|
7天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
36 3