Apache 性能配置优化

Apache 性能配置优化

前言

最近在进行apache性能优化设置。在修改apache配置)文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯。以下的apache配置调优均是在red had的环境下进行的。

httpd 相关查看命令了解

查看当前安装模块mpm(多路处理器)
查看httpd进程数(即各个mpm模式下Apache能够处理的并发请求数)
查看Apache的并发请求数及其TCP连接状态
查看请求80服务的client ip按照连接数排序。
查看apache详细链接情况
检测某一台服务器的端口是否开启状态[root@localhost ~]# nc -v -w 10 -z 172.20.206.147 25801
验证apache2配置是否正确

apache模块启用

模块介绍:Apache 各个模块功能 基本(B)模块默认包含,必须明确禁用;扩展(E)/实验(X)模块默认不包含,必须明确启用。
性能调优,模块启用/关闭

apache2 扩展配置文件说明

httpd-autoindex.conf 自动索引配置httpd-dav.conf WebDAV配置httpd-default.conf Apache的默认配置httpd-info.conf mod_status, mod_info模块配置httpd-languages.conf Apache多语言配置支持httpd-manual.conf 在网站上提供Apache手册httpd-mpm.conf 多路处理模块配置文件httpd-multilang-errordoc.conf 实现多语言的错误信息httpd-ssl.conf SSL配置httpd-userdir.conf 配置用户目录httpd-vhosts.conf 虚拟主机配置

性能指标计算方法

提供下面这个公式,以供大家在平时或者日常需要进行的性能测试中作为一个参考。

计算平均的并发用户数:

C = nL/T

C是平均的并发用户数;n 是 login session 的数量;L 是 login session 的平均长度;T指考察的时间段长度。

并发用户数峰值:

C’ ≈ C+3根号C

C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的 loginsession 产生符合泊松分布而估算得到的。

apache2自带的压力测试工具ab

ab最常用的语法格式是这样的
比如我们要对http://hostname:port/file.com下载10000次进行测试,并发访问为60个,启用HTTP KeepAlive功能,则访问指令为[root@localhost ~]# ab -n 10000 -c 60 -k http://hostname:port/file.htm

Java的压力测试工具Jmeter

Jmeter 是apache开发的基于Java的压力测试工具。

apache多路处理器MPM

目前apache2.4版本已经event MPM纳入正式版,不再是实验状态。安装时,apache已经自动将event MPM一起安装进去,通过apachectl -l可以查看到event.c模块。由此可以看到,event MPM已经成为apache默认的MPM工作模式。

(1)启用MPM

计算event的相关参数

(1):计算服务器进程的平均内存

event MPM 与worker MPM区别

可以支持比worker更高的并发数,主要安装在类unix/linux上的工作模式。event mpm是worker mpm的变种,但是具有比worker MPM更好的并发性能。在event mpm模式下,ssl是不被支持的,他会被切换到worker mpm下处理。event mpm在apache2.4版本时才被从实验状态转化成标准应用。

apache 缓存设置

apache涉及的缓存模块有mod_cache、mod_disk_cache、mod_file_cache、mod_mem_cache。如果要使用缓存必须启用这四个缓存模块。

同时修改缓存设置后,必须重启apache,刷新缓存,否则用户访问页面不是最新页面。

mod_cache、mod_disk_cache、mod_mem_cache、mod_file_cache关系- apache缓存分为硬盘缓存和内存缓存- mod_disk_cache mod_mem_cache 都依赖于mod_cache- mod_file_cache是结合mod_cache使用,可以用于指定几个频繁访问,但是变化不大的文件
配置硬盘缓存和内存缓存的缓存配置
文件缓存的应用

apache压缩配置

apache通过

mod_deflate

模块实现页面压缩,要想进行页面压缩必须启用以下两个模块

LoadModule deflate_module modules/mod_deflate.so

页面压缩模块配置

<ifmodule mod_deflate.c>

keepAlive

在HTTP 1.0中和Apache服务器的一次连接只能发出一次HTTP请求,而KeepAlive参数支持HTTP 1.1版本的一次连接,多次传输功能,这样就可以在一次连接中发出多个HTTP请求。从而避免对于同一个客户端需要打开不同的连接。很多请求通过同一个 TCP连接来发送,可以节约网络和系统资源。

(1)keepAlive启用场景
(2)keepAlive配置

问题集锦

1、加载

LoadModule authz_core_module modules/mod_authz_core.so

2、配置信息后面不能跟随注释,注释必须另起一行

CacheDefaultExpire takes one argument, The default time in seconds to cache a document

3、关键字错误 AddOutputFileByType 应该是

AddOutputFitlerByType

4、启用

LoadModule setenvif_module modules/mod_setenvif.so

5、ifModule注释不能跟在配置参数后面,否则会导致配置解析失败

AH00526: Syntax error on line 558 of /usr/local/cp-httpd-2.4.18/conf/httpd.conf: