当前位置: 首页 > news >正文

Apache Server 负载能力测试

服务器负载太大而影响程序效率也是很常见的,我们需要对此进行测试。这里我以目前最常用的Apache服务器为例。

  Apache服务器自带有一个叫AB(ApacheBench)的工具,在bin目录下。使用这个轻巧的工具我们可以对服务器进行负载测试,看看在重负荷之下服务器的表现如何。ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求,同时还可以仿真出同时间点数个相同的联机请求,因此利用 ApacheBench 可帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真出来的数据作为调整服务器设定或程序的依据。

  在命令行下输出:

  ./ab -n number_of_total_requests \

  -c number_of_simultaneous_requests \

  your_web_server/your_php_app.php

  例如:

  ./ab -n 1000 -c 50 www.domain.com/myapp.php

  AB将同时向www.domain.com/myapp.php发出50个并发请求,共发出1000次。

  测试结果将可能是这样的:

  Server Software: Apache/2.0.16

  Server Hostname: localhost

  Server Port: 80

  Document Path: /myapp.php

  Document Length: 1311 bytes

  Concurrency Level: 50

  Time taken for tests: 8.794 seconds

  Complete requests: 1000

  Failed requests: 0

  Total transferred: 1754000 bytes

  HTML transferred: 1311000 bytes

  Requests per second: 113.71

  Transfer rate: 199.45 kb/s received

  Connection Times (ms)

  min avg max

  Connect: 0 0 5

  Processing: 111 427 550

  Total: 111 427 555

  myapp.php每秒钟可以处理的请求数为113.71个。将请求数增加,看看服务器能否处理更大的压力。你也需要调节Apache的 MaxClients,ThreadsPerChild,MaxThreadsPerChild等参数,基于你的httpd.conf中的MPM模块选择。

  如果你想得到更详细的信息,请到www.apache.org上查阅一些更深入的文档,包括模块和第三方的提高效率的工具。修改httpd.conf后,要重启Apache服务器,然后再用AB测试。你会看到每秒请求数增加或减少。

  记下每次的参数,最后选择最佳效率的那种配置。

  要指出的是,除了AB,还有许多优秀的服务器性能测试软件。另外,如果你的服务器不是Apache,请自行寻找测试方法

本文转自博客园知识天地的博客,原文链接:Apache Server 负载能力测试,如需转载请自行联系原博主。

相关文章:

  • C#的delegate简单练习
  • 前端学习系列
  • 【前端】2017年12月11日 前端的内功心法语言篇--01
  • day14-css的存在形式以及优先级
  • [LeetCode] Ransom Note 赎金条
  • textField textView输入限制
  • Python中的generator对象
  • 数据结构C++ 队列——队列的应用
  • PS注意
  • 提升工作效率的方法
  • 基于Redis实现分布式锁,避免重复执行定时任务
  • 一篇文章告诉你React里为什么不能用index作为key
  • 阿武老师百搭傲娇句式
  • LaTeX模板(二)
  • java可重入锁(ReentrantLock)的实现原理
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • bearychat的java client
  • Facebook AccountKit 接入的坑点
  • HTTP中的ETag在移动客户端的应用
  • JAVA之继承和多态
  • 成为一名优秀的Developer的书单
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 关于使用markdown的方法(引自CSDN教程)
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于axios的vue插件,让http请求更简单
  • 漂亮刷新控件-iOS
  • 前端之Sass/Scss实战笔记
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • FaaS 的简单实践
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #includecmath
  • #include到底该写在哪
  • #传输# #传输数据判断#
  • (2015)JS ES6 必知的十个 特性
  • (2022 CVPR) Unbiased Teacher v2
  • (33)STM32——485实验笔记
  • (二)丶RabbitMQ的六大核心
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (南京观海微电子)——I3C协议介绍
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (算法)N皇后问题
  • (算法)前K大的和
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • ***监测系统的构建(chkrootkit )
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .net中生成excel后调整宽度
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • ?php echo ?,?php echo Hello world!;?
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...