从简化安装 ==> 性能调优 ==> 方便维护的角度, 讨论 web 服务的规划 ==>HTTPD 安装 / 应用模块配置 ==> 升级 / 维护等过程.
让 APACHE 的升级和 PHP RESIN 等应用模块的升级完全互不影响.
摘要:
Web 应用容量规划: 根据硬件配置和 Web 应用的特点进行 Web 服务的规划及一些简单的估算公式;
APACHE 安装过程: apache 的通用的简化安装选项, 方便以后的应用的模块化配置;
修改 HARD_SERVER_LIMIT:
- vi /path/to/apache_src/src/include/httpd.h
- #define HARD_SERVER_LIMIT 2560 <=== 将原来的 HARD_SERVER_LIMIT 256 后面加个 "0"
apache 编译:
/path/to/apache_src/configure --prefix=/another_driver/apache --enable-shared=max --enable-module=most
可选应用模块 / 工具的安装: PHP resin mod_gzip mod_expire 及各个模块之间的配合;
PHP 安装:
/path/to/php_src/configure --with-apxs=/path/to/apache/bin/apxs --enable-track-vars --with-other-modules-you-need
mod_resin 安装:
/path/to/resin/src/configure --with-apxs=/path/to/apache/bin/apxs
Mod_gzip 安装:
/path/to/apache/bin/apxs -i -a -c mod_gzip.c
工具: cronolog 安装: http://www.cronolog.org/
升级 / 维护: 看看通用和模块化的安装过程如何简化了日常的升级 / 维护工作;
按照以上的方法: 系统管理员和应用管理员的职责可以清楚的分开, 互相独立.
系统安装: 系统管理员的职责就是安装系统 => 安装好一台可以适应任何情况的 APACHE, 然后 COLON,
应用安装: 由应用管理员负责具体应用所需要的模块并设置 HTTPD.
系统升级: 系统管理员: 升级系统 / 升级 APACHE
应用升级: 系统管理员: 升级应用模块
具体的说明:
Web 应用的容量规划
APACHE 主要是一个内存消耗型的服务应用, 我个人总结的经验公式:
- apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
- apache_max_process = apache_max_process_with_good_perfermance * 1.5
为什么会有一个 apache_max_process_with_good_perfermance 和 apache_max_process 呢? 原因是在低负载下系统可以使用更多的内存用于文件系统的缓存, 从而进一步提高单个请求的响应速度. 在高负载下, 系统的单个请求响应速度会慢不少, 而超过 apache_max_process, 系统会因为开始使用硬盘做虚拟内存交换空间而导致系统崩溃. 此外, 同样的服务: 2G 内存的机器的 apache_max_process 一般只设置到 1G 内存的 1.7 倍, 因为 APACHE 本身会因为管理更多的进程而产生性能下降.
http://www.iis7.com/b/ssyqdq/
例子 1:
一个 apache + mod_php 的服务器: 一个 apache 进程一般需要 4M 内存
因此在一个 1G 内存的机器上: apache_max_process_with_good_perfermance < (1g / 4m) * 2 = 500
apache_max_process = 500 * 1.5 = 750
所以规划你的应用让服务尽量跑在 500 个 APACHE 以下, 并设置 APACHE 的软上限在 800 个.
例子 2:
一个 apache + mod_resin 的服务器: 一个 apache 进程一般需要 2M 内存
在一个 2G 内存的机器上: apache_max_process_with_good_perfermance < (2g / 2m ) * 2 = 2000
因此: apache_max_process = 2000 * 1.5 = 3000
来源: http://www.bubuko.com/infodetail-3035070.html