apache网站访问缓慢的处理记录

朋友在阿里云上开通了一台ubuntu服务器(2G内存,2核CPU),用apache搭建了一个公众号网站。
网站初期,他没有做相应的优化,在后续公众号推广活动时,网站并发突增,访问十分缓慢。
登陆服务器,具体现象为:
1)uptime查看负载较高;
2)ss -a(或netstat命令)查看连接数较多,并且WAIT_TIME比较多;
3)apache日志显示prefork工作模式下的并发连接数设置有问题;[mpm_prefork:error] [pid 13848] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
4)重启apache服务后,网站暂时访问稍快,但过一会后又十分缓慢。

针对上面的现象,帮他做了一些优化操作后,网站高并发下访问正常,速度很快。操作记录如下:
1)修改apache的最大并发连接数(默认是256)
有日志报错可知,apache采用的是默认的prefork模式(使用apache2 -l或httpd -l命令也能查看处理 )
找到mpm_prefork.conf文件进行连接数的修改(若是work模式,就修改mpm_worker.conf)
[[email protected] ~]# vim /etc/apache2/mods-available/mpm_prefork.conf
<IfModule mpm_prefork_module>
      StartServers                     10
      MinSpareServers               10
      MaxSpareServers              20
      ServerLimit                      2000
      MaxRequestWorkers         1500
      MaxConnectionsPerChild    10000
</IfModule>

说明:
手动添加ServerLimit,这个才是修改apache最大并发连接数的参数设置,一定要将它放在MaxRequestWorkers的前面,并且它的值也一定要大于MaxRequestWorkers的值。如上设置,apache的最大并发连接数设置为2000个。
其他的配置:
StartServers         定服务器启动时建立的子进程数量,prefork默认为5
MinSpareServers   指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。
MaxSpareServers  设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。
MaxRequestWorkers   最大数量的服务器进程允许开始;这个参数是这些中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。
MaxConnectionsPerChild   每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

重启apache服务(最好是先stop,然后再start)
在/etc/apache2/apache2.conf文件中添加ServerName localhost,去掉apache服务启动中的告警信息。
[[email protected] ~]# /etc/init.d/apache2 stop
[[email protected] ~]# /etc/init.d/apache2 start

2)修改内核参数,解决WAIT_TIME过多的问题
添加下面四行内容
[[email protected] ~]# vim /etc/sysctl.conf
......
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

[[email protected] ~]# sysctl -p

调大系统最大打开的文件数
[[email protected] ~]# ulimit -n 65535

时间: 2024-10-05 09:10:31

apache网站访问缓慢的处理记录的相关文章

转换CDN解决 stackoverflow, gitHub 网站访问缓慢的问题

stackoverflow 这个网站并未被河蟹,但是该网站使用的是 Google提供的 CDN服务.所以在 Google 被河蟹的情况下,使用其 CDN服务的网站也会受到影响.解决的思路是,把对 Google CDN的请求转换为国内的 CDN请求. 具体做法: 修改 hosts 文件. Mac 打开终端(terminal),键入以下命令     sudo vi /etc/hosts 键入密码后,确认(Enter): 进入文件以后,点击 i , 进入插入模式,对 hosts 文件进行修改: 在 l

部署Apache网站访问统计-AWStats分析系统

1.安装AWStats软件包 将软件解压到httpd服务器/usr/local/目录下 [[email protected] /]# tar zxf awstats-7.3.tar.gz

Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案

原文地址:Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案 启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:"No input file specified." 原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题. Wordpress程序默认的.htaccess里面的规则: 1 HTML " data

网站访问优化(二):开启apache服务器gzip压缩

昨天,把带宽从1M升级到2M,使用cdn版本的jquery之后,网站访问速度由平均5s(在禁止缓存的情况下,使用缓存大概在2.8s)下降到2.8s的样子. 今天,继续优化. 第1步:   把图片进行了压缩,70kb以上的banner用的大图,压缩成50kb左右.图片质量稍微下降了一点,没钱连高清图片都用不起,所以还是得有钱,赚钱. 第2步:  js压缩. 昨天,也用了网上下载的js/css压缩器,部署时,用压缩版本的.速度并没有明显的提升,可能是因为js和css很少,而且都比较小的缘故. 晚上,

网站为什么打不开?访问缓慢?

2016年11月21日 上午 大周一的早上被手机闹铃给振醒,我这个人有个习惯每次起床必定看一眼手机,不管是早上还是半夜只要醒来总要看看手机邮箱是否收到报警邮件.(我只是个苦逼的小运维~) 起床拉开窗帘看着窗外06年的第一场雪,美好的一天开始了~~ 刚到公司屁股刚坐热,听到有人说咱们网站咋回事?访问的时候咋看不到页面呐?! 好吧~ 我知道,来活了!开干! 问题描述:在浏览器中输入公司网址发觉连接了半天还没访问到页面,随着时间的加长网站只是加载了一些静态资源.清除缓存在此访问,问题依旧. 问题分析:

网站访问过程理解(一点记录)

一个普通网站访问的过程 简单概括一下,对于我们普通的网站访问,涉及到的技术就是: 用户操作浏览器访问,浏览器向服务器发出一个 HTTP 请求: 服务器接收到 HTTP 请求,Web Server 进行相应的初步处理,使用服务器脚本生成页面: 服务器脚本(利用Web Framework)调用本地和客户端传来的数据,生成页面: Web Server 将生成的页面作为 HTTP 响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端: 客户端(浏览器)接收到 HTTP 响应,通

2-12-配置squid代理服务器加快网站访问速度

本节所讲内容: squid服务器常见概念 squid服务器安装及相关配置文件 实战:配置squid正向代理服务器 实战:配置透明squid代理提升访问速度 实战:配置squid反向代理加速度内网web服务器访问速度 squid服务概述: 全称: squid cache,是一个流行的自由软件(GNU通用公共许可证). 主要有连个功能:  代理服务器 和 为web服务器提供缓存 应用广泛: 1. 共享网络资源,缓存万维网; 2.为web服务器前置缓存提高web服务器的访问速度; 3. 域名和其他网络

windows下安装awstats来分析apache的访问日志

一.啰嗦两句 之前在Windows下用Apache时,也曾经配置过Awstats,然后换了工作,改用Linux+nginx,渐渐把Apache忘记了.又换了工作,又得用Apache,这回版本更新到2.4了,配置稍微有点不同,其他文章再列出了.网站上线了好几个月,因为一直没有什么流量且自己忙于各种琐屑的工作,一直没给Apache加上Awstats进行日志分析.最近网站几次搞活动,懂不懂就访问缓慢,于是意识到,该加上日志分析工具了.今天趁着周末,重新来配置Awstats,感觉有点陌生.查了各种资料,

雅虎十四条 - 14个优化网站性能提高网站访问速度的技巧

14个优化网站性能提高网站访问速度的技巧 又叫“雅虎十四条”,想起一年前那个懵懂的我,大四傻乎乎的跑到大学城面试前端,那个时候以为寒暑假看了两套CSS的视频,就很牛B了,出发先还把视频温了一下,嗯嗯,这是滑动门,嗯嗯这是绝对定位,嗯嗯这是浮动清除…… 当时是彪叔面试我的,当时我还不知道那个人,全身黑漆漆的,黑色T-shirt,黑色皮肤,黑色帽子,黑色墨镜,还有点黑色胡渣的人,就是彪叔,补做了试题后支支吾吾的跟他谈了一下,发现完全不行,第一个问题是“雅虎十四条”是什么?然后我蒙了,pardon?