第十七章 apache 性能调优
前言
本文档基于对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,则不进行限制。推荐将它设置得更大一些。
第十七章 apache 性能调优相关推荐
- apache性能调优
2019独角兽企业重金招聘Python工程师标准>>> 一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这 ...
- 通向架构师的道路(第三天)之apache性能调优
一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...
- Apache整合Tomcat详解系列(三)Apache性能调优
一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...
- 第3天. 系统构架师之路之apache性能调优
一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...
- 第一章 Java性能调优概述
性能概述 看懂程序的性能 一般来说,程序的性能能通过以下几个方面来表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏 启动时间:程序从 ...
- mysql性能监控 调优_MySQL管理之道:性能调优、高可用与监控(第2版)
MySQL管理之道:性能调优.高可用与监控(第2版) 作者:贺春旸 著 出版日期:2016年08月 文件大小:71.36M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPad/iPho ...
- 面试怕被问“后端优化”问题?看看这套java性能调优手册吧!
对于很多研发人员来说,Java 性能调优都是很头疼的问题. 比如,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优化.另外,很 ...
- 《Java后端性能调优实战方案手册》,看完至少阿里P7
之前有朋友说,"我们公司的系统从来都没有经过性能调优,集成测试没问题后就上线了,上线后也几乎没出现过性能问题."其实没遇到性能问题不代表程序不存在性能问题,只能说明系统的访问量有点 ...
- Apache Spark Jobs 性能调优(二)
Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...
最新文章
- thinkphp概述2
- 项目怎么部署到服务器上_项目开发学习 云服务器的部署
- JavaScript玩转机器学习:模型和层
- 三.Python函数
- linux 可以ping 通 windows ,windows ping 不了 linux
- 在Linux的Terminal中显示文本文件特定行的内容
- 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
- vue生产环境使用localhost请求端口号不是自己设置的?来试试这个
- mac touchbar 自定义
- pdf文件转图片的两种方法
- PN结相关知识点(PN结原理)
- 个人用游戏设计框架图
- 用matlab s函数 阶梯,Matlab S函数使用介绍
- MapReduce实现商品推荐算法(用户购买向量*商品同现矩阵)
- MySQL之my.cnf配置文件
- 小米备份descript.xml文件
- 数据结构算法-二叉树
- Java的学习道路(一)
- CAP与ACID原则
- wine qq 2012 for linux Ubuntu 64位兼容(7月19号更新)
热门文章
- java中各种流的详细使用
- 获取控件坐标位置一直是0
- ~~做过的好玩的题~~
- 【机器学习_4】机器学习算法分类
- web_find和web_reg_find的用法和区别
- Xamarin Android 所见即所得问题
- POJ 2263 floyd思想
- 用matlab交互式的选取图像特定区域数据
- 两条实用的 SQL 语句
- MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误...