前言

本文档基于对apache的学习整理而成的笔记。本文档详细的记录了apache各种应用,以及一些个人的理解,如果偏差,请和我联系,以在下一个版本中进行更正。其中大部分文档均来自网络,感谢网络上各位朋友的分享,才有此文档的出现。其中本人对参考的部分网络文档进行适当的修改,以达到更好的参考效果。也希望各位积极的分享文档,为开源事业做出自己力所能及的贡献。

itnihao  2012年10月04日于成都

第十七章 apache 性能调优

17.1对程序本身的优化

在GCC的默认情况下,大多数程序和库都是带调试符号(默认使用GCC的-g选项)编译的,Apache也不例外,这些调试符通常只在调试程序的时候使用,它不但能给出内存地址,还能给出变量和函数名称。但是这对生产服务器来说是不必要的,因为没有人在服务器上调试Apache.而且因为调试符号的存在,Apache在运行的时候会占用更多的内存,虽然数量不大,但是如果大量的Apache进程运行,内容累积起来,也不是一个小数目

[root@localhost ~]# ls /usr/local/apache/bin/httpd  -l

-rwxr-xr-x. 1 root root 1879241 Aug 22 19:31 /usr/local/apache/bin/httpd

[root@localhost ~]# strip /usr/local/apache/bin/httpd

[root@localhost ~]# ls /usr/local/apache/bin/httpd  -l

-rwxr-xr-x. 1 root root 564968 Oct  3 00:45 /usr/local/apache/bin/httpd

此处可以看到清除调试符后的体积只有原先的30%,具体视情况而定

17.2 Apache的监控模块mod_status

Mod_status可以监控的对象

当前工作的进程数量

空闲的进程数量

服务器已经运行的时间

当前正在连接的主机的请求

单个进程的CPU使用率和Apache当前CPU使用的百分比

每秒平均请求量,每秒发送字节数,每个请求发送字节数

修改配置文件httpd.conf

LoadModule status_module modules/mod_status.so

添加监控内容

<location /server-status>
    SetHandler server-status
    Order Deny,Allow
          Deny from all
          Allow from 127.0.0.1 192.168.16.90
</location>

ExtendedStatus  On

http://192.168.16.30/server-status           访问监控页面

http://192.168.16.30/server-status?refresh=1  1秒刷新一次

http://192.168.16.30/server-status?notable    不支持表格的浏览器,使用此参数

http://192.168.16.30/server-status?auto       提供易读的报告

http://192.168.16.30/server-status?auto?refresh=1 易读的报告,每秒刷新一次

17.3运用cacti监控apache

APACHE端安安装配置snmp

com2sec mynetwork 127.0.0.1 public

com2sec mynetwork 192.168.16.254 public  #cacti监控机为192.168.16.254

group MyROGroup v2c mynetwork

view all included .1 80

access MyROGroup "" any noauth prefix all none non

cacti添加主机

模板下载地址http://forums.cacti.net/about25227.html&highlight=apachestats

添加默认模板,方便以后所有主机添加该模板

注意,apache端需要允许cacti监控,即 Allow from 127.0.0.1 192.168.16.90

17.4 mod_info的使用

Httpd.conf开启该模块,去掉注释

LoadModule info_module modules/mod_info.so

添加以下模块

<location /server-info>

SetHandler server-info

Order Deny,Allow

Deny from all

Allow from 127.0.0.1 192.168.16.90 192.168.16.254

</location>

17.5 .htaccess文件的调优

在Apache中,通常都是在httpd.conf文件中完成对服务器的配置,但是对于一些管理员来说,更简单更精细化的控制目录可以更有用。

AccessFileName  .config  指定.htaccess文件名为.config

调用参数 AllowOverride  选项

All         使用所有能在.htaccess文件中使用的指令

AuthConfig  使用授权指令,如AuthName AuthType

Fileinfo     使用控制文件类型的指令,如ErrorDocument,SetoutputFilter

Indexes     使用目录索引指令

Options     使用控制目录功能指令

Limit       使用主机访问控制指令

例如,启动.htaccess文件功能,并让htaccess文件支持目录索引指令

AllowOverride  Indexes

例如在/var/www/html/web目录下的.htaccess中写入下面的内容后,该目录就可以支持CGI了

Option  +EsecCGI

AddHandler cgi-script  cgi  pl

使用.htaccess好处

可以随时对目录功能和权限进行控制

二是写入.htaccess文件后无需重启Apache服务

虽然.htaccess有如此多的优点,但它存在的缺点会导致服务器性能的急速下降,这是因为使用看了AllowOerride指令允许使用.htaccess文件后,无论是否使用.htaccess文件,Apache都会在每个目录下面查找.htaccess文件,其次,当每个请求链接到来时,Apache会查找链接所请求目录下面的.htaccess文件,并且查找它的上级目录中的.Htaccess文件以使。Htaccess文件内的设置都能生效;另外还存在安全问题,.Htaccess文件可以修改和覆盖服务器的指令。

解决办法:

在<Directory>容器中使用AllowOverride指令开启。另外严格制定执行,目录,尽量不用ALL参数来启动所有指令

17.6 模块加载的调优

DSO中模块的加载顺序:

DSO模块装入顺序决定了Apache使用它们处理URL的顺序,DSO模块总是以最后装入的模块为优先进行处理,而第一个装入的模块则是在最后一个被处理

例如:

LoadModule alias_module modules/mod_alias.so

LoadModule rewrite_module modules/mod_rewrite.so

mod_rewrite模块会在mod_alias之前处理请求的URL。因此,可以通过调整加载顺序来改变执行的优先级,但此问题在2.X版本中表现不是很明显。

17.7 Apache所提供的性能调优指令

KeepAlive:        通过“on”与“off”开关来设置是否使用HTTP持久连接

MaxKeepaliveRequest 一个持久连接中允许的最大请求数量,默认为100,推荐设置更大

KeepaliveTimeout    设置持久连接中服务器在两次请求之间等待的秒数,默认为5秒,对于高负荷服务器来说,KeepaliveTimeout值较大会导致一些性能问题,超时值越大,与空闲客户端保持连接的进程就越多。因此,用户需要测试一下自己的系统再决定这个值的大小

MaxKeepaliveRequest 在启用了持久连接后每个连接允许的请求数量,如果将此值设为0,则不进行限制。推荐将它设置得更大一些。

本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1012166,如需转载请自行联系原作者

第十七章 apache 性能调优相关推荐

  1. apache性能调优

    2019独角兽企业重金招聘Python工程师标准>>> 一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这 ...

  2. 通向架构师的道路(第三天)之apache性能调优

    一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...

  3. Apache整合Tomcat详解系列(三)Apache性能调优

    一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...

  4. 第3天. 系统构架师之路之apache性能调优

    一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...

  5. 第一章 Java性能调优概述

    性能概述 看懂程序的性能 一般来说,程序的性能能通过以下几个方面来表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏 启动时间:程序从 ...

  6. mysql性能监控 调优_MySQL管理之道:性能调优、高可用与监控(第2版)

    MySQL管理之道:性能调优.高可用与监控(第2版) 作者:贺春旸 著 出版日期:2016年08月 文件大小:71.36M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPad/iPho ...

  7. 面试怕被问“后端优化”问题?看看这套java性能调优手册吧!

    对于很多研发人员来说,Java 性能调优都是很头疼的问题. 比如,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优化.另外,很 ...

  8. 《Java后端性能调优实战方案手册》,看完至少阿里P7

    之前有朋友说,"我们公司的系统从来都没有经过性能调优,集成测试没问题后就上线了,上线后也几乎没出现过性能问题."其实没遇到性能问题不代表程序不存在性能问题,只能说明系统的访问量有点 ...

  9. Apache Spark Jobs 性能调优(二)

    Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...

最新文章

  1. thinkphp概述2
  2. 项目怎么部署到服务器上_项目开发学习 云服务器的部署
  3. JavaScript玩转机器学习:模型和层
  4. 三.Python函数
  5. linux 可以ping 通 windows ,windows ping 不了 linux
  6. 在Linux的Terminal中显示文本文件特定行的内容
  7. 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
  8. vue生产环境使用localhost请求端口号不是自己设置的?来试试这个
  9. mac touchbar 自定义
  10. pdf文件转图片的两种方法
  11. PN结相关知识点(PN结原理)
  12. 个人用游戏设计框架图
  13. 用matlab s函数 阶梯,Matlab S函数使用介绍
  14. MapReduce实现商品推荐算法(用户购买向量*商品同现矩阵)
  15. MySQL之my.cnf配置文件
  16. 小米备份descript.xml文件
  17. 数据结构算法-二叉树
  18. Java的学习道路(一)
  19. CAP与ACID原则
  20. wine qq 2012 for linux Ubuntu 64位兼容(7月19号更新)

热门文章

  1. java中各种流的详细使用
  2. 获取控件坐标位置一直是0
  3. ~~做过的好玩的题~~
  4. 【机器学习_4】机器学习算法分类
  5. web_find和web_reg_find的用法和区别
  6. Xamarin Android 所见即所得问题
  7. POJ 2263 floyd思想
  8. 用matlab交互式的选取图像特定区域数据
  9. 两条实用的 SQL 语句
  10. MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误...