apache服务器性能不行,Apache服务器性能调优

文章目录

[隐藏]

工具

Apache mod_status

Apache2Buddy

多处理模块

Prefork

Worker

Event

模块配置

StartServers

MinSpareServers

MaxSpareServers

MaxClients

Apache配置对您的服务器的性能有重大影响。 提高服务器性能的最简单方法是关闭不需要的模块。 本指南涵盖Apache模块,关闭哪些模块以及其他Apache性能调整选项。

工具

有多种工具可以帮助确定是否需要更改资源设置,包括top命令和负载测试程序Siege。 使用以下命令查看使用统计信息

echo [PID]  [MEM]  [PATH] &&  ps aux | awk ‘{print $2, $4, $11}’ | sort -k2rn | head -n 20

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

更详细用于帮助了解Apache资源使用情况的工具包括Apache mod_status和Apache2Buddy。

Apache mod_status

Apache mod_status通过生成详细的状态页面来显示与入站服务器连接相关的信息。示例如下:

1.打开您的网站的配置文件。 此文件位于Debian / Ubuntu系统上的/etc/apache2/sites-available/example.com.conf或CentOS / Fedora系统上的/etc/httpd/conf.d/vhost.conf。

2.将以下内容添加到块中:

/etc/apache2/sites-available/example.com.conf (Debian/Ubuntu)

/etc/httpd/conf.d/vhost.conf (CentOS/Fedora)

SetHandler server-status

Order Deny,Allow

Deny from all

Allow from localhost

3.Apache mod_status还提供了一个名为ExtendedStatus的选项,该选项提供有关向Apache发送的每个请求的额外信息。 要启用ExtendedStatus编辑您的Apache配置文件:

/etc/apache2/apache2.conf (Debian/Ubuntu)

/etc/httpd/confd/httpd.conf (CentOS/Fedora)

ExtendedStatus On

4.重启Apache

Debian/Ubuntu:

service apache2 restart

CentOS/Fedora:

/bin/systemctl reload httpd.service

5.要查看生成的文件,请下载Lynx:

Debian/Ubuntu:

apt-get install lynx

Fedora/CentOS:

yum install lynx

6.查看状态页

lynx http://localhost/server-status

Apache2Buddy

Apache2Buddy脚本与MySQLTuner类似,它检查您的Apache设置,并根据您的Apache进程内存和总体RAM提出建议。 虽然它是一个相当基本的程序,专注于MaxClients指令,不过Apache2Buddy相当有用,可以通过单个命令运行:

curl -L http://apache2buddy.pl/ | perl

多处理模块

Apache提供两个多处理模块,三个(如果在Apache 2.4上),用于管理您的设置。

每个模块创建子进程,主要区别在于它们如何处理线程。

Prefork

prefork模块在启动时创建多个子进程,每个子进程只处理一个线程。 由于这些进程一次只处理一个线程,因此如果有太多的并发请求,请求速度就会受到影响。 如果发生这种情况,一些请求基本上必须等待处理。 要处理此问题,请增加生成的子进程数,但请注意,这会增加RAM使用量。 Prefork是最安全的模块,当使用不是线程安全的模块时使用。

Worker

Worker模块的子进程在每个进程中生成许多线程,每个线程都能处理请求。 这提升了服务器的并发能力,当然也能减少服务器内存使用量。 总的来说,工作模块提供了更高的性能,但是比prefork安全性更低,不能与不是线程安全的模块一起使用。

Event

Event模块仅在Apache 2.4上可用,并且基于Worker MPM。 和Worker一样,它为每个子进程创建多个线程,一个线程专用于KeepAlive连接,一旦请求发出,它就传递给子线程。 这对于多个并发连接很有用,特别是那些不是同时处于活动状态但却偶尔请求的连接。 在SSL连接的情况下,Event MPM的作用与Worker相同。

模块配置

一旦选择了MPM,您需要更改配置中的值。 这些设置位于Debian / Ubuntu上的/etc/apache2/apache2.conf文件和CentOS / Fedora上的/etc/httpd/conf/httpd.conf文件。 MPM配置如下:

StartServers          4

MinSpareServers       20

MaxSpareServers      40

MaxClients           200

MaxRequestsPerChild  4500

对于其他MPM,分别将替换为或以使用Worker和Event。

重新配置Apache服务器的下一步是更改上述设置。 要做到这一点,你需要知道每个值的作用,以及如何更好地调节它。

同样,进行配置更改的最佳方法是进行增量更改,然后监视效果。

StartServers

StartServers值指示启动时创建的子进程数,并根据负载进行动态控制。 通常没有理由更改此数字,除非您的服务器频繁重新启动,并在重新启动时接收大量请求。

MinSpareServers

设置空闲子进程的最小数量。 如果进程数少于MinSpareServer数,则会在Apache 2.2或更低版本上以每秒一个的速率创建更多进程。 使用Apache 2.4,此速率呈指数增长,从1开始到每秒生成32个子进程。 这个值的作用是,当收到一个新请求时,它可以直接使用空闲线程而不需要新生成一个; 如果已经没有可用线程了,Apache会新生成一个子进程,不过这会消耗服务器资源以及延长请求处理时间。 注意,太多的空闲进程也会对服务器产生不利影响。

MaxSpareServers

设置空闲子进程的最大数量。 如果空闲进程超出这个值,多余的将会终止。 除非您的网站非常繁忙,否则此数字不应设置过高,因为即使空闲进程也会消耗资源。

MaxClients

可同时提供的最大请求数量,请求数超过限制时后来的请求将入队列。 如果这个设置太低,队列中的连接可能会超时; 但是,如果设置过高,则会导致内存不足出现swap。 如果此值增加超过256,则还必须增加ServerLimit值。

计算最佳值的一种方法是用服务器可用内存除以每个Apache进程使用的内存量,注意要为其他进程留出一些内存空间。 使用ApacheBuddy帮助确定这些值,或下面的命令。

要确定每个Apache进程使用的RAM,请在Debian或Ubuntu系统上将apache2替换为httpd:

ps -ylC httpd –sort:rss

除以1024转为Mb

获取内存使用信息:

free -m

Apache服务器性能调优

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

ecdc44921dc2342530cc3b2bd47813ff.jpg

6d389a1548a167a095d4f0c4d4f9a5c0.jpg微信扫一扫,打赏作者吧~

上一篇

Apache mod_alias设置路径别名 下一篇

Ubuntu 12.04 (Precise Pangolin)安装Nginx PHP FastCGI

相关推荐

22657Debian 9配置Apache MariaDB Drupal运行环境

22657Ubuntu 16.04安装Magento 2 Varnish和Apache

22657Ubuntu apt-cache列出版本列表并apt-get安装指定版本

22657设置Apache 301跳转到https和www

22657centos 7 yum安装配置apache 2.4

22657centos7源码编译安装apache2.4

22657使用Apache的deny allow禁止和允许指定IP的访问

22657Zabbix3.0监控Apache2.4服务器状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值