查看Apache并发请求数及其TCP连接状态

[文章作者:张宴 本文版本:v1.1 最后修改:2007.07.27 转载请注明出处:http://blog.s135.com]

这两天搭建了一组Apache服务器,每台服务器4G内存,采用的是prefork模式,一开始设置的连接数太少了,需要较长的时间去响应用户的请求,后来修改了一下Apache 2.0.59的配置文件httpd.conf:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers         10
MinSpareServers      10
MaxSpareServers      15
ServerLimit          2000
MaxClients           2000
MaxRequestsPerChild  10000

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
  Linux命令:

ps -ef | grep httpd | wc -l

返回结果示例:
  1388
  表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。

查看Apache的并发请求数及其TCP连接状态:
  Linux命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

(这条语句是从新浪互动社区事业部技术总监王老大那儿获得的,非常不错)
  返回结果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。

关于TCP状态的变迁,可以从下图形象地看出:

状态 描述
CLOSED 无连接是活动的或正在进行
LISTEN 服务器在等待进入呼叫
SYN_RECV 一个连接请求已经到达,等待确认
SYN_SENT 应用已经开始,打开一个连接
ESTABLISHED 正常数据传输状态
FIN_WAIT1 应用说它已经完成
FIN_WAIT2 另一边已同意释放
ITMED_WAIT 等待所有分组死掉
CLOSING 两边同时尝试关闭
TIME_WAIT 另一边已初始化一个释放
LAST_ACK 等待所有分组死掉
时间: 2024-07-29 20:13:58

查看Apache并发请求数及其TCP连接状态的相关文章

Apache中并发控制、查看进程数、TCP连接、压缩功能说明

一:apache有关并发控制 主要是 prefork和worker二个其中一个来控制.我们可以使用httpd -l来确定当前使用的MPM是prefork.c,还是Worker.c. # httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c 相关的配置在httpd.conf 当中可以找到 二:查看httpd进程数(即prefork模式下Apache能够处理的并发请求数): ps -ef | grep httpd |

Centos查看apache,nginx并发连接数和TCP连接状态命令

netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态.  代码如下 复制代码 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'   或者:  netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}' FIN_WAIT2        38 CLOSING  

TCP连接状态详解及TIME_WAIT过多的解决方法

  TIME_WAIT状态原理 ---------------------------- 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态. 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态. 下图是以客户端主动关闭连接为例,说明这一过程的.   TIME_WAIT状态存在的理由 ---------------------------- TCP/IP协议就是这样设计的,是不可避

TCP连接状态详解

tcp状态:   LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED:代表一个打开的连接 FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 FIN-WAIT-2:从远程TCP等待连接中断请求 CLOSE-WAIT:等待从本地用户发来的连接中断请求 CLOSING:等待远程TCP对连接中断的确认 LAST-ACK:等待

关于TCP连接状态修改问题,LIST和datagridview

问题描述 有一个LIST里面存放了连接的客户端IP地址比如里面存放了两个IP地址这个是不固定的.可能会有多个然后有一个datagridview中也存放了多个IP地址我如何判断LIST中的IP地址是否在datagridview中存在,如果存在,那么修改datagridview中的状态参数图标.希望给出具体代码谢谢本人新手.我写的代码如下可是每次如果有新的IP上线总会覆盖掉前面已经成功连接的IP地址我不知道我代码是否判断有问题希望指教foreach(variteminipaddrssList){fo

Linux中查看apache当前连接数命令

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数): Linux命令:  代码如下 复制代码 ps -ef | grep httpd | wc -l 返回结果示例:1388 表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002. 查看Apache的并发请求数及其TCP连接状态:  代码如下 复制代码 [root@web10 ~]#netstat -n | awk '/^tcp/ {++S[$NF

IIS处理并发请求时出现的问题及解决

原文http://www.cnblogs.com/hgamezoom/p/3082538.html 一个ASP.NET项目在部署到生产环境时,当用户并发量达到200左右时,IIS出现了明显的请求排队现象,发送的请求都进入等待,无法及时响 应,系统基本处于不可用状态.因经验不足,花了很多时间精力解决这个问题,本文记录了我查找问题的过程和最后解决方案,供大家参考.   软硬件环境: IBM刀片服务器,Intel至强处理器,4物理核,16个逻辑核心,内存32G Windows Server2008 E

tcp连接的几种状态及连接状态详解

TCP连接示意图如下 通常情况下,一个正常的TCP连接,都会有三个阶段:     TCP三次握手;    数据传送;    TCP四次挥手 里面的几个概念:     SYN: (同步序列编号,Synchronize Sequence Numbers)    ACK: (确认编号,Acknowledgement Number)    FIN: (结束标志,FINish) I. TCP三次握手 客户端发起一个和服务创建TCP链接的请求,这里是SYN(J)服务端接受到客户端的创建请求后,返回两个信息:

Apache中配置最大并发用户数 tcp连接设置

 Apache在配置编译时可以自主的选择想要使用的MPM模块,使用./configure --with-mpm=MPM命令.我们主要了解prefork和worker这两种MPM模块. Prefork 如果不用"--with-mpm"显式指定某种MPM,prefork就是Unix平台上缺省的MPM.它所采用的预派生子进程方式,用单独的子进程来处理不同的请求,进程之间彼此独立.在make编译和make install安装后,使用httpd -l来确定当前使用的 MPM是prefork.c.