文档章节

服务器性能优化(二):apache调优

stone_
 stone_
发布于 2015/10/29 16:32
字数 1141
阅读 608
收藏 0

1) MPM(多处理模块)配置(主要负责管理网络连接,调度请求)

     Apache有3个MPM,分别是: event , prefork和worker。


     event这个MPM是在Apache2.4后才有稳定版,比较适用于大量连续连接的情况。event为不同的任务使用单独的线程池. KeepAlive的好处是,可以同一个tcp连接中响应多个请求,这种方式,可以使一个包含大量图片和html文档的请求加速50%,在Apache配置文件httpd.conf中设置KeepAlive设置为On.


     prefork是一个非线程的MPM。它的特点:不快但很稳定.它能够隔离每个请求,所以如果某个请求出现故障,不会影响其他请求.使用prefork最重要的一个参数是MaxClients。这个MaxClients足够大,这样可以在访问高峰时发挥很好的性能,但是同时又不能太大,致使Apache所需内存超过物理内存。


    worker这个MPM,速度比prefork快很多,由于使用多线程进行访问处理,所以能够处理相对海量的请求,而系统资源的占用要小于基于进程的服务器.work有2个比较重要的参数:ThreadPerChild和MaxClients.ThreadPerChild是用来控制每个子进程允许建立的线程数,MaxClients用来控制允许建立的总线程数.

详细见:http://my.oschina.net/shyl/blog/523070

perfork   MPM 


<IfModule mpm_prefork_module]]>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxRequestWorkers 250

MaxConnectionsPerChild 0 

</IfModule]]>    


StartServers   : 数量的服务器进程的开始

MinSpareServers : 最小数量的服务器进程

MaxSpareServers : 最大数量的服务器进程

MaxRequestWorkers : 最大数量的服务器进程允许开始

MaxConnectionsPerChild: 最大连接数的一个服务器进程服务


worker  MPM 


<IfModule mpm_worker_module>

StartServers 3

MinSpareThreads 75

MaxSpareThreads 250 

ThreadsPerChild 25

MaxRequestWorkers 400

MaxConnectionsPerChild 0 

</IfModule>  


StartServers   : 数量的服务器进程的开始

MinSpareThreads : 最小数量的工作线程

MaxSpareThreads : 最大数量的工作线程

ThreadsPerChild   : 每个服务进程包含的固定数量的工作线程

MaxRequestWorkers : 最大数量的工作线程

MaxConnectionsPerChild: 最大连接数的一个服务器进程服务

 

 event MPM


<IfModule mpm_event_module>

StartServers 3

MinSpareThreads 75

MaxSpareThreads 250

ThreadsPerChild 25

MaxRequestWorkers 400

MaxConnectionsPerChild 0

</IfModule>


StartServers   : 数量的服务器进程的开始

MinSpareThreads : 最小数量的工作线程

MaxSpareThreads : 最大数量的工作线程

ThreadsPerChild   : 每个服务进程包含的固定数量的工作线程

MaxRequestWorkers : 最大数量的工作线程

MaxConnectionsPerChild: 最大连接数的一个服务器进程服务

 

  通过/opt/apache/bin/httpd -l,我们可以看到我们的使用是event MPM 


<IfModule mpm_event_module>

    ServerLimit             10000

    StartServers            8

    MinSpareThreads         75

    MaxSpareThreads        250

    ThreadsPerChild        25

    MaxRequestWorkers       4000

    MaxConnectionsPerChild  2000

</IfModule>


 


2)Apache其他参数优化

   1. ExtendedStatus Off    关闭对每个请求连接的扩展状态信息跟踪.

   2. KeepAlive  On         //使用keepalive可以在单一连接时进行多个请求.

      MaxKeepAliveRequests  0  //最大保持连接数, 0为不限制.

      KeepAliveTimeout      5  //每个连接保持时间

   3. HostnameLookups  Off 

     //尽量较少DNS查询的次数。如果你使用了任何”Allow fromdomain”或”Denyfrom domain”指令(也就是domain使用的是主机名而不是IP地址),则代价是要进行两次DNS查询(一次正向和一次            反向,以确认没有作假)。所以,为了得到最高的性能,应该避免使用这些指令.

   4.使用mod_deflat模块,这个模块可以在用户访问网站时实时将内容进行压缩,然后再传给客户端.所以mod_deflat能极大地加速网站,节约带宽,当然压缩需要花费cpu时间.

LoadModule deflate_module     modules/mod_deflate.so


<ifmodule mod_deflate>

     DeflateCompressionLevel 9

     SetOutputFilter DEFLATE

     #DeflateFilterNote Input instream

     #DeflateFilterNote Output outstream

     #DeflateFilterNote Ratio ratio

     #LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

     #CustomLog logs/deflate_log.log deflate

</ifmodule>


   5.减少Timeout值   Timeout  30

   6. UseCanonicalName   on


    打开UseCanonicalName是Web服务器的标准做法。这是因为客户发送的大部分请求都是对本服务器的引用,打开该项设置就能使用 ServerName和Port选项的设置内容构建完整的URL。如果将这个参数设置为Off,那么Apache将使用从客户请求中获得服务器名字和端口值,重新构建URL。


   7.  取消符号连接   Options FollowSymLinks


FollowSymLinks允许使用符号连接,这将使用浏览器有可能访问文档根目录(DocumentRoot)之外的内容,并且只有符号连接的目的与符号连接本身为同一用户所拥有时(SymLinksOwnerMatch),才允许访问,这个设置将增加一些安全性,但将耗费Apache大量的资源。


© 著作权归作者所有

共有 人打赏支持
stone_
粉丝 20
博文 221
码字总数 163611
作品 0
洛阳
程序员
私信 提问
性能调优概述

大纲: 一、概述 二、什么是性能调优?(what) 三、为什么需要性能调优?(why) 四、什么时候需要性能调优?(when) 五、什么地方需要性能调优?(where) 六、什么人来进行性能调优?(who) 七、怎...

陈明乾
2014/07/14
0
0
Windows Server 2016进行性能调优?

  【IT168 技术】微软已发布了官方Windows Server 2016性能调优指南。这是一个全面的指南,提供了一系列技术文章,其中包含对IT专业人员的指导,提供对负责部署,操作和调优Windows Serve...

it168网站
2017/05/26
0
0
成为Java GC专家系列

成为Java GC专家(1):深入浅出Java垃圾回收机制 成为Java GC专家(2):如何监控Java垃圾回收机制 成为Java GC专家(3):如何优化Java垃圾回收机制 成为Java GC专家(4):Apache的MaxClients参数...

HenrySun
2016/06/21
66
0
RedHat 性能调优

性能优化是为了提高性能性能,减少资源消耗和应用对系统的影响。如果过早实施,或者没有性能评估,性能性能优化可能,或者必须导致相反的效果。 但是如果系统的进行,性能优化可以是一门科学...

oschina
2015/12/25
4.9K
1
Tomcat性能调优方案

Tomcat性能调优方案 一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU...

Sephiroth
2010/02/06
2.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现

作者 | Spring Cloud Alibaba 高级开发工程师洛夜 来自公众号阿里巴巴中间件投稿 前段时间 Hystrix 宣布不再维护之后(Hystrix 停止开发。。。Spring Cloud 何去何从?),Feign 作为一个跟 ...

Java技术栈
16分钟前
5
0
虚拟机加密

在超融合的基础设施和虚拟化成为常态的世界里,对加密的要求越来越高,越来越迫切,IT部门需考虑的重大安全问题和方法也浮现了出来。 物理数据中心时代,采取双保险式数据安全方法是相对简单...

linuxCool
20分钟前
1
0
MySQL 主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

野雪球
32分钟前
1
0
OSChina 周一乱弹 —— 温柔的人应该这样

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 《フィクション-sumika》 《フィクション-sumika》 手机党少年们想听歌,请使劲儿戳(这里) 假期时间干嘛去, @for...

小小编辑
今天
270
7
[LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)

描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你...

honeymose
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部