apache性能优化参考

1)调整配置文件的配置项的值(httpd.conf)

Timeout 60 #建议设置该值比较小,有利于快速释放连接。
KeepAlive Off #系统前端有安装squid,则必须要开启;否则处理动态的内容多,则关闭,或处理静态的资源多,也许开启。
MaxKeepAliveRequests 100
KeepAliveTimeout 15 #KeepAlive超时时间,没有指定该值,默认使用Timeout,否则使用该值。
配置工作模式1:prefork.c
<IfModule prefork.c> #多个子进程、每个子进程有1个线程,在某个时间点只能维持1个连接,效率高,但耗费内存
StartServers 5 #启动时建立的子进程数量 <20 20~50 50~100
MinSpareServers 5 #空闲子进程的最小数量 默认5个 数量不够会被创建
MaxSpareServers 10 #空闲子进程的最大数量 默认10个 多余的进程会被关闭
ServerLimit 1024 #apache中允许客服端请求连接的数量极限值 最大20000
MaxClients 768 #允许客服端请求连接的数量 默认256 MaxClients 与ServerLimit必须同时增大 ServerLimit项必须放在MaxClients项前
MaxRequestsPerChild 0 #每个子进程在其声明周期中,能够处理请求的数量,最大为10000 0 子进程不会结束 超过10000,多的子进程会被结束
</IfModule>

将MaxRequestsPerChild设置成非零值有两个好处:
1)可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2)给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
ThreadLimit >= ThreadsPerChild
MaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数 (2048 <= 25*25)
MaxSpareThreads >= MinSpareThreads+ThreadsPerChild (500 >= 25+25)
配置工作模式2: worker.c
<IfModule worker.c> #多个子进程、每个子进程有多个线程,在某个时间点只能维持1个连接,不耗费内存,适合高流量服务器,单个线程崩溃会引起同一进程中的其他线程崩溃
StartServers 3 #启动时建立的子进程数量
MinSpareThreads 25 #空闲子进程的最小数量 默认5个 数量不够会被创建
MaxSpareThreads 75 #空闲子进程的最大数量 多余的进程会被关闭 MaxSpareThreads>=MinSpareThreads+ThreadsPerChild
ServerLimit 25 #apache中允许客服端请求连接的数量极限值 最大20000
MaxClients 150 #允许客服端请求连接的数量 默认256 MaxClients 与ServerLimit必须同时增大 MaxClients<=ServerLimit*ThreadsPerChild
ThreadsPerChild 25 #每个子进程建立常驻执行的线程数 默认100~500 最大值20000 与ThreadLimit必须同时增大
ThreadLimit 200 #每个子进程可配置的线程数最大值 ThreadLimit>=ThreadsPerChild
MaxRequestsPerChild 0 #每个子进程在其声明周期中,能够处理最大请求的数量,最大为3000 0 子进程不会结束 超过10000,多的子进程会被结束
</IfModule>

设置过期时间
<IfModule expires_module.c>
ExpiresAction ON
ExpiresDefault "access plus 12 month"
ExpiresByType "text/html access plus 12 month"
</IfModule>

开启gzip压缩
<IfModule mod_deflate.c>
DeflateCompressionLevel 7
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
</IfModule>

时间: 2024-10-07 04:42:06

apache性能优化参考的相关文章

25个Apache性能优化技巧推荐

25个Apache性能优化技巧推荐 Apache至今仍处于web服务器领域的霸主,无人撼动,没有开发者不知道.本篇文章介绍25个Apache性能优化的技巧,如果你能理解并掌握,将让你的Apache性能有显著的提升! Apache部分: 1. 移除不用的模块. 2. 使用 mod_disk_cache NOT mod_mem_cache . 3. 扁平架构配置mod_disk_cache. 4. 安装恰当的Expires, Etag, 和 Cache-Control Headers . 5. 将缓

tomcat性能优化参考

1)内存优化(调整配置堆的大小,修改文件:catalina.sh) JAVA_OPTS="-server -Xms595M -Xmx595M -Xmn223M -XX:SurvivorRatio=10 -Xss1M -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:+E

apache性能优化

Apache的配置是针对原先较低的服务器来配置的,原先的配置显然已经不适合了,所以今天开始研究下Apache配置的问题. 1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)MPM是Apache的核心,它的作用是管理网络连接.调度请求. Apache2.0中MPM分为3种(perfork.worker.event).perfork从Apache1.3中继承下来的,它采用的是进程管理方式,所以它可以提供更可靠的性能和更好的兼容性:worker

redis性能优化参考

redis调优总结 1.相应的参数调优 加内存2.redis使用结构调优3.使用合理的数据类型说明:redis存储的数据为redis hash(字符映射表) 单key多字段结构. 1)调整配置文件中配置项的值(修改文件:redis.conf)1)调整memory大小 redis.conf 中maxmemory 不需要配置(作为数据库来使用) 需要配置(作为缓存来使用)2)设置过期时间 expires 键值名称 秒数 expires key 60 设置过期时间 为了腾出更多的空间 过期策略:没有设

nginx性能优化参考

1)调整配置文件中的配置项的值(配置文件:nginx.conf) worker_processes auto;开启的进程数,一般配置为跟逻辑CPU核数一样worker_rlimit_nofile 51200;1个nginx进程可打开的最大文件描述符数目的数量 events{ use epoll;设置工作模式为消息通知模式(epoll),轮询模式效率低(select) worker_connections 51200;每个进行可打开的最大连接数据,受最大文件描述符数目的限制 multi_accep

Apache 性能配置优化

前言 最近在进行apache性能优化设置.在修改apache配置)文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯.以下的apache配置调优均是在red had的环境下进行的. httpd 相关查看命令了解 查看当前安装模块mpm(多路处理器) [[email protected] ~]# httpd -l 查看httpd进程数(即各个mpm模式下Apache能够处理的并发请求数) [[email protected] ~]# ps -ef | grep httpd | wc -

关于Apache的性能优化

关于Apache服务器,我看了一些文档,有一些提高性能的想法. 1.重新编译Apache. Apache的默认配置不是为了最大化性能而设置的,而是考虑到向后兼容性和平台兼容性的问题.因此很多2.x的新特性没有能够体现出来.在编译的时候,需要加入一些参数,增加的这些模块应该会大幅的提高性能. 既然重新编译,建议使用最新的2.2版,里面有些部分对性能有不少加强. 2.编译的时候建议加入下面的参数./buildconf./configure / --with-mpm=worker / --enable

Apache POI Java读取100万行Excel性能优化:split vs indexOf+subString,谁性能好

使用Apache POI eventmodel实现一个Excel流式读取类,目标是100万,每行46列,文件大小152MB的Excel文件能在20s读取并处理完.一开始实现的程序需要260s,离目标差太远了,使用jvisualvm分析各方法执行时间,结果如下: 可以看到,程序中的splitLine和getRowNum方法消耗了大量时间.这两个方法都特别简单.splitLine方法将类似“123==hello”这样的字符串分解成{"123","hello"}数组,使用

Apache kafka性能优化架构分析

应用程序优化:数据压缩 consumer offset默认情况下是定时批量更新topics的partitions offset值 Apache kafka性能优化架构分析