分享
 
 
 

问一个apache端口filtered的老问题

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

我有一台服务器,运行着apache,用户访问量非常大,大概高峰时期,同时在线2000人左右.偶尔会出现如下情况(用nmap扫描结果):

80/tcp filtered http

这样,网站就无法访问了.不得不重启apache才能恢复正常.

出现这种情况时,有时内存使用较高,会启用较多的swap,500M左右.我的物理内存为1G.有时好象apache进程非常多,可能有10多个,一般正常情况下,大概8个左右.我的Apache是以mpn=worker来编译的.

请高手指点,这可能是什么原因,如何防范这种情况的发生.谢谢!

peng 回复于:2004-10-22 09:12:05

问题描述的太笼统了。。

你的web是什么样子的?静态页面还是php or jsp?

还有,不能访问的时候,apache日值报什么错误?

系统性能检测的时候,是什么伏在状况啊?

还有,你的apache具体的worker模块的设置参数是什么啊。。

分析一个问题,要多方面的排除啊。。

很少有问题一下就能知道的。。

yesright 回复于:2004-10-22 11:55:25

我的服务器有一个行业咨讯网站,apache2+php4+mysql4

分前台和后台,前台全部是HTML页面,后台是php网站生成系统.

根据不同的页面,更新为每3秒到几分钟不等.

服务器配置为:dell2650/2cpu 2.8G/1G mem

同时在线人数一般为500--2000人不等.流量为3--8M

apache日志已经作了日志滚动,每天生成一个日志,大概1.5G左右.

下面附有一张mrtg图,有标示当时的情况.大概在10月21号23:30左右出现故障.

http://www.yesright.com/mrtg.mht

peng 回复于:2004-10-22 12:05:04

嗯,这么说是用新闻编辑器来生成的。

你的后台是apache2+mysql+php4,前台也是放在这个机器上吧。

也就是说,通过虚拟主机来实现不同域名的访问,来区分前后台的。

如果是静态页面,apache2估计1g的内存是不能支持2000条http的同时访问的。负载比较严重。

还有,你把你的httpd.conf文件关于mpm=worker的那个参数帖出来,我要看看你的参数连接设置是什么,发生这种filter是由于软限制还是硬限制产生的。。

yesright 回复于:2004-10-25 14:41:21

谢谢peng,没错,我的html和发布系统在同一台服务器上,现在正准备做负载平衡.

我的httpd.conf中worker.c的配置如下:

$ cat /usr/local/apache2/conf/httpd.conf |grep worker.c -A 10

<IfModule worker.c>

StartServers 2

MaxClients 3000

ServerLimit 60

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 50

MaxRequestsPerChild 0

</IfModule>

服务器cpu一般负载在70%到95%

我的服务器在高峰期已经达到了apache的MaxClients 3000,从www.yesright.com/onlinehttpd.png可以看到,已经一条直线了.

在最高峰期(在线httpd统计3000时),交换分区会用到1000M左右.

请问我的worker.c能不能加大MaxClients,我有点怕服务器忙不过来,而造成apache死掉.

下面附有一张昨天的内存使用图和在线人数的mrtg图

www.yesright.com/mem.png

www.yesright.com/onlinehttpd.png

peng 回复于:2004-10-25 15:21:51

你的物理内存是有点小,可以这样试试。

增大线程,缩小进程看看。。

<IfModule worker.c>

StartServers 4

ServerLimit 128

ThreadLimit 256

MaxClients 4096

MinSpareThreads 64

MaxSpareThreads 128

ThreadsPerChild 64

MaxRequestsPerChild 0

</IfModule>

在web的大访问量期间,要有人守候,因为是生产机,最好监测一下。

如果条件允许,最好能扩大物理内存,不能让内存使用到100%。还有,swap分区最好是物理内存的3-4倍,防止程序编写的错误。

分析一下日志,看看高峰期的时候,apache的连接ip都是那些,统计一下,有没有攻击或者不正常的情况,如果多数是从几个固定ip连接过来的,就要分析一下了。。

yesright 回复于:2004-10-25 16:42:13

谢谢你的建议,我会在接下来的一周进行测试.

yesright 回复于:2004-10-25 17:06:39

我想借此机会,请教一下负载均衡的问题(假定以后发展到同时10000人在线).

我的负载均衡仅仅只要求apache的html页面的负载均衡,因为我服务器的瓶颈在内存上和IO上.

我的初步设想如下:

一台后台服务器,专门做html的生成

用两台服务器作前台,提供html访问

负载均衡采用DNS轮询

html发布采用nfs.(例如:把两台前台的网站主目录mount到后台服务器上,发布时同时复制两份到前台)

这只是小弟的初步设想,请大家多多指教.

peng 回复于:2004-10-25 17:37:28

如果想同时支持10000人的话,在普通的pc server上,做负载均衡是必须的了。

我看到你的方案,如果在10000人以上,面临的三个问题:http的大请求量、硬盘的io负载,还有就是内存了。。

对于你的解决方案,如果用nfs的话,是解决不了io的问题。

其实你可以这样:apache+squid的。。

1、1台apache的主机,做新闻发稿器来生成主页。同时,这个机器提供远程的nfs的磁盘存贮。

2、前端2台主机做发布主机,一台安装apache+squid,另一台只安装squid。

原理:发布的主机接受到用户的访问请求,是要访问后台的新闻发稿器的磁盘,这样,每增加一个前端的机器,就是增加一份对io的请求。io的请求是不会降低,而是增高的。所以,同squid做反相代理,来相应用户的http的请求。访问后,会在本机的squid的cache中存放数据。当用户再访问这个数据时候,squid是读取本机上的cache,而不是远程nfs连接的数据,从而大大的降低了硬盘的io读写。把io负载充分的分散到前端的两个主机本身的硬盘上了。而且,你你发布的是新闻,新闻更新的速度不是很快的,就是说,用户既大多数都在访问squid的cache,从而更能体现出squid的好处了。

第一主机用apache+squid,其中的apache是起到读取后台的硬盘的作用。前端的squid通过80端口来相应用户请求。另一台机器也是squid的80端口相应用户,对于新的请求,连接第一台机器,让第一个机器的apache来访问后台主机的数据硬盘。

软件构建就是这样的:

新闻发稿器(apache+nfs server)--apache主机(第一太主机)--squid(两个对外相应的机器)。

如果你前端用三台机器,是最好的选择。两个主机装squid,一个主机就安装apache。通过dns论许,http请求均匀的发送到三个主机上。统计那个apache主机,乘以3,就是所有的网站pv了。。这里主意一点,就是squid好像软件请求的极限是3000个httpd相应。

之所以用1个apache +2个squid,是因为squid没有办法做访问统计。

还有,这种结构,随着你的应用增加,只需要增加你的squid机器就可以了。当前端的apache负担增大的时候,可以在squid主机上在安装apache来均分squid请求就ok了。。

大多数的门户网站都是用了这种apache+squid的配置结构。当然了,很多有钱的公司,直接就买了cache服务器,例如:netapp公司的netcache就是专门干这个的,替代了主机装squid来做cache。

yesright 回复于:2004-10-25 23:47:42

谢谢你详细的建议,做squid代理可能不能适合我的要求

因为我的服务器不是真正的新闻服务器,是一种类行业咨讯提供系统.

就象pconline.com.cn,同步各地区行情,或是足球的赔率网站,实时同步全球顶级联赛数据,系统时刻在更新,我的首页每三秒会更新一次,有些几分钟更新,是通过调用一个xml(或者说是一个数组),实时性太强了.可能代理方案是行不通的.

peng 回复于:2004-10-26 09:31:47

如果是这样的话,就要根据实际情况测试一下了。最好后台的服务器买个sun sparc的。。当然了,如果有条件,建议添加一个小的阵列,这样来做nfs的存储空间,能很好的解决磁盘io问题。。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有