第一次使用siege 第一次压力测试

本文分享了使用Siege工具进行WEB压力测试的经验,包括设置并发数、重复次数等参数的具体实践,以及如何通过调整参数解决测试中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Long long ago,别人教过我我怎么使用siege进行压力测试,不过那毕竟是很久很久之前的事了,尘封在记忆里早已经是灰尘密布。

今天翻了出来,自己要对自己的程序进行压力测试了。很是紧张,不知道要怎么做:并发数要设多少?要重复多长时间?CPU要压到什么样?QPS多少能让自己认为可以?很是迷惑。

关于siege是什么东西,以及有哪些参数,大家可以看看这篇文章:使用Siege进行WEB压力测试

我这里只记录一下我使用的过程而已.

因为使用的是APACHE,所以并发数我并没有设多大,只设成了30. 同时重复次数我设成了300,结果如下:

siege -b -c 30 -r 300 -f a.txt

ransactions: 9000 hits
Availability: 100.00 %
Elapsed time: 5.70 secs
Data transferred: 0.00 MB
Response time: 0.02 secs
Transaction rate: 1578.08 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 29.48
Successful transactions: 9000
Failed transactions: 0
Longest transaction: 0.15
Shortest transaction: 0.00

CPU压到idel 50

对于这台垃圾机器,QPS1500+已经可以了,毕竟这也不是主流业务.

另外要说的就是,之前在做测试的时候,我压到了QPS 600+就已经很高兴了,而且很意外的发现CPU压不下去了.时间也过的很长.经同事提醒,知道了用siege做压力测试要做的两个东西:

  1. 要使用-b参数,否则一般情况下起不到”压”的作用
  2. 加了-b参数,如果发现成功率很低,那么就应该考虑域名是否有并发数限制,请同事帮忙打开了域名并发数限制,正常测试OK

没有亲自动手做过永远也不敢尝试,甚至在文件里写域名这一点也很胆小,不敢尝试.

好了,第一次使用siege,第一次压力测试.一切还算完美.

很好用的网络压力测试工具 Linux版 siege的安装 unzip filename.zip cd siege-*.*.* ./configure --prefix=/usr/local/siege --mandir=/usr/local/man --with-ssl=/usr/local/ssl mkdir -p /usr/local/siege/etc mkdir -p /usr/local/siege/var make make install 查看配置文件 /usr/local/siege/bin/siege -C 二、siege使用 举例说明: 50个用户(每次并发量)重复100次 共产生 50*100 个请求 /usr/local/siege/bin/siege -c 50 -r 100 www.baidu.com 50个用户 重复100次 发送GET参数 /usr/local/siege/bin/siege -c 50 -r 100 http://www.baidu.com/s?wd=siege&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=4&rsv_sug=2&rsv_sug1=4&rsv_sug4=60 50个用户 重复100次 发送POST参数 (注意引号) /usr/local/siege/bin/siege -c 50 -r 100 "https://www.abc.com/a.php POST name=zhangsan" 50个用户 重复100次 发送POST参数(从文件中读取) /usr/local/siege/bin/siege -c 50 -r 100 "https://www.abc.com/a.php POST < /root/ab_test/post.xml" 另外还有挺多参数 详情请man 或 siege -h siege报表解析,请man查看,暂略(有点累了,不想写了。。。。。)。 Transactions: 10 hits :服务器接收的请求数 Availability: 100.00 % :有效情况的比例 Elapsed time: 1.06 secs : 试所用的时间 Data transferred: 0.04 MB :每个模拟用户的数据传输量 Response time: 0.03 secs :响应每个模拟用户请求的平均时间 Transaction rate: 9.43 trans/sec :服务器每秒处理事务的平均数 Throughput: 0.04 MB/sec :服务器每秒跟所有模拟用户的数据传输量 Concurrency: 0.25 :每秒的模拟连接 Successful transactions: 10 :处理成功的事务数(code<400) Failed transactions: 0 : 处理失败的事务数(code>400) Longest transaction: 0.04 :最长的事务处理时间 Shortest transaction: 0.02 :最短的事务处理时间
<think>好的,用户现在问的是关于httpd-tools,我需要先回想一下之前和用户的对话历史。之前的对话是关于Nginx的基本架构,用户现在可能是在比较Apache和Nginx的工具集,或者需要管理Apache服务器。httpd-tools通常和Apache HTTP Server(即httpd)相关,属于Apache的工具包。 首先,我需要确认httpd-tools包含哪些工具。常见的工具有ab(ApacheBench)、htpasswd、htdigest、logresolve等。用户可能想知道这些工具的用途,或者如何安装使用。另外,用户可能是在配置服务器时遇到了问题,需要这些工具来完成某些任务,比如压力测试、用户认证等。 用户之前对Nginx的架构很感兴趣,现在转向httpd-tools,可能是想了解Apache的相关工具,或者在比较两者的生态系统。需要确保回答清晰,说明这些工具的主要功能和使用场景,同时和之前Nginx的架构信息区分开,避免混淆。 还要注意用户是否有更深层的需求。比如,他们是否在寻找性能试工具(如ab),或者管理Apache服务器的工具。可能需要提供安装步骤,比如在基于Red Hat的系统上用yum安装,Debian/Ubuntu可能包名不同。此外,示例命令会帮助用户快速上手,比如用ab做压力测试的示例,或者用htpasswd创建用户文件。 另外,用户可能不知道这些工具的存在,或者不确定它们的具体用途,所以需要逐一解释每个主要工具的功能。例如,htpasswd用于基本认证,logresolve用于解析IP地址,这些都是在管理Web服务器时常用的工具。 最后,总结部分要强调httpd-tools的作用,帮助用户高效管理Apache服务器,进行试和维护。同时,可能需要提醒用户,虽然这些工具是为Apache设计的,但有些(如ab)也可以用于试其他Web服务器,比如Nginx,这可能是用户之前接触过Nginx后感兴趣的地方。</think>--- **httpd-tools** 是 Apache HTTP Server(简称 `httpd`)的配套工具集,主要用于辅助 Web 服务器的配置、试和管理。以下是对其核心组件及功能的详细介绍: --- ### **1. 主要工具及用途** | 工具名称 | 功能描述 | |----------------|--------------------------------------------------------------------------| | **ab** | **ApacheBench**:HTTP 性能试工具,模拟高并发请求,生成服务器压力测试报告。 | | **htpasswd** | 创建和管理 `.htpasswd` 文件,用于 HTTP 基本认证(Basic Authentication)。 | | **htdigest** | 创建和管理 `.htdigest` 文件,支持摘要认证(Digest Authentication)。 | | **logresolve** | 将 Apache 访问日志中的 IP 地址解析为域名,便于日志分析。 | | **rotatelogs** | 按时间或大小自动轮转(切割)日志文件,避免单个日志文件过大。 | | **dbmmanage** | 管理 DBM 格式的用户数据库文件,适用于大规模用户认证场景。 | --- ### **2. 核心工具详解** #### **(1) `ab`(ApacheBench)** - **用途** 模拟多用户并发请求,试 Web 服务器的吞吐量、响应时间等性能指标。 - **常用命令示例** ```bash ab -n 1000 -c 100 http://example.com/ # 发起1000次请求,并发数为100 ``` - **输出关键指标** - Requests per second(每秒请求数) - Time per request(单个请求平均耗时) - Transfer rate(数据传输速率) #### **(2) `htpasswd`** - **用途** 生成和管理用户密码文件(`.htpasswd`),用于 HTTP 基本认证。 - **示例** ```bash htpasswd -c /path/to/.htpasswd username # 创建新文件并添加用户 htpasswd /path/to/.htpasswd user2 # 追加新用户 ``` #### **(3) `rotatelogs`** - **配置示例(Apache 中集成)** ```apache CustomLog "|/usr/bin/rotatelogs /var/log/httpd/access_log.%Y%m%d 86400" combined ``` - 每 86400 秒(24 小时)切割一次日志,文件名包含日期(如 `access_log.20231001`)。 --- ### **3. 安装与依赖** - **基于 RPM 的系统(如 CentOS/RHEL/Fedora)** ```bash sudo yum install httpd-tools ``` - **基于 Debian/Ubuntu 的系统** ```bash sudo apt install apache2-utils # 包名不同,功能类似 ``` --- ### **4. 典型使用场景** 1. **性能** 使用 `ab` 试 Nginx、Tomcat 或其他 Web 服务的并发处理能力。 2. **用户认证管理** 通过 `htpasswd` 为静态网站或 API 添加基础身份验证。 3. **日志优化** 利用 `rotatelogs` 自动分割日志,结合 `logresolve` 解析 IP 提升可读性。 4. **快速调试** 生成试用 HTTP 请求,验证服务器配置或负载均衡策略。 --- ### **5. 对比 Nginx 工具** - **Nginx 的等效工具** - 性能试:`ab` 可通用,或使用 `wrk`、`siege`。 - 日志切割:需依赖 `logrotate` 或其他第三方工具。 - 认证管理:Nginx 原生支持 `htpasswd` 文件,但无类似 `htdigest` 的内置工具。 --- ### **总结** **httpd-tools** 是 Apache 服务器生态中的重要组件,尤其适合: - **开发者**:快速验证服务性能(如接口吞吐量)。 - **运维人员**:管理认证、日志切割等日常任务。 - **试工程师**:通过标准化工具生成负载试报告。 其轻量级特性使其即使在不运行 Apache 主服务的场景下(如试 Nginx 或云原生应用)仍具有实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值