文档章节

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

stone_
 stone_
发布于 2015/10/29 16:32
字数 1141
阅读 525
收藏 0
点赞 0
评论 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_
粉丝 19
博文 163
码字总数 163611
作品 0
洛阳
程序员
性能调优概述

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

陈明乾 ⋅ 2014/07/14 ⋅ 0

成为Java GC专家系列

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

HenrySun ⋅ 2016/06/21 ⋅ 0

Windows Server 2016进行性能调优?

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

it168网站 ⋅ 2017/05/26 ⋅ 0

Tomcat性能调优方案

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

Sephiroth ⋅ 2010/02/06 ⋅ 0

第1章 Java性能调优概述

1.1 性能概述 1.1.1 看懂程序的性能 什么是Full GC? Full GC是指发生在Java堆老年代的GC,会发生Stop The World程序假死现象。 以WEB服务器为例,服务器的响应时间,吞吐量就是两个重要的性...

陶邦仁 ⋅ 2015/01/13 ⋅ 2

tomcat调优方案

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

蜡笔小小小新 ⋅ 2015/09/07 ⋅ 0

提升tomcat服务器性能的经验

在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验。 1. 服务器资源 服务器所能提供CPU、内存、硬盘的性能对处...

不正经啊不正经 ⋅ 2014/12/25 ⋅ 0

提升tomcat服务器性能的七条经验

在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验。 1. 服务器资源 服务器所能提供CPU、内存、硬盘的性能对处...

JAVA枪手 ⋅ 2014/12/02 ⋅ 0

Tomcat性能调优方案

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

xiaoxin ⋅ 2014/08/21 ⋅ 0

Tomcat 性能调优方案

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

华宰 ⋅ 2011/11/13 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部