当前服务器的并发连接数查看

当前服务器的并发连接数查看

最近在测试项目,项目环境是centos 5.6下,nginx,mysql,php环境的项目,数据库的数据量较大,每个表都是近亿级别的数据,多表轮询查询。

linux的最大并发允许的链接: 
查看当前服务器的并发连接数命令: 
查看使用了多少连接数: 
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 
新版本centos用这个: 
cat /proc/sys/net/netfilter/nf_conntrack_count

查看总数多少: 
cat /proc/sys/net/ipv4/ip_conntrack_max 
新版本用这个: 
cat /proc/sys/net/netfilter/nf_conntrack_max

临时设置增加并发数多少: 
echo “524288” > /proc/sys/net/ipv4/ip_conntrack_max 
新版本centos用这个: 
echo “524288” > /proc/sys/net/netfilter/nf_conntrack_max

最终: 
/etc/sysctl.conf中加入:net.ipv4.ip_conntract_max =102400 
新版本centos用这个: 
/etc/sysctl.conf中加入:net.nf_conntract_max =102400 
重启配置 
/sbin/sysctl -p

linux的并发过程中,time_wait的数量太大,引起的链接挂起等待,需要在服务器增加以下配置:

编辑文件/etc/sysctl.conf,加入以下内容:

net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_fin_timeout = 30 
然后执行 /sbin/sysctl -p 让参数生效。 
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; 
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; 
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 
net.ipv4.tcp_fin_timeout 修改系默认的 TIMEOUT 时间

数据库方面优化:使用简单的代码进行查询,建立了索引,同时查询条件相对简单化。数据库mysql的最大连接数设置成了3000,但是压力测试阶段,发现其实最大并发连接数达不到这么高。

php端优化: 
由于接口是webservice,压力测试阶段总是并发链接上不去,但是cpu和各项服务器性能参数都很低,增加libxml_disable_entity_loader(false); 在页面开始,问题解决,可以大并发访问。

Php.ini的修改:

; The timeout for serving a single request after which the worker process will 
; be killed. This option should be used when the ‘max_execution_time’ ini option 
; does not stop script execution for some reason. A value of ‘0’ means ‘off’. 
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) 
; Default Value: 0 
request_terminate_timeout = 0s

该项置0。

优化前,并发在20RPS。 
以上是对这次的优化,优化后,该接口并发达到300左右RPS,响应时间在0.3秒内。如果还要继续优化,后面需要考虑对应的第三方缓存,减少数据库级别的查询才能更好解决问题。

 

参考文章:http://www.itwendao.com/article/detail/92135.html

分类: linux相关命令

<think>好的,用户问如何查看服务器支持的最大并发连接数。这个问题有点广泛,因为不同的服务器软件配置不同,比如Nginx、Apache、Tomcat或者数据库如MySQL,它们的配置方式都不太一样。首先,我需要确定用户指的是哪种服务器,或者他们是否想知道操作系统层面的限制。 可能用户没有明确说明,所以最好覆盖常见的服务器类型和系统层面的限制。先从系统层面开始,比如Linux下的文件描述符限制,这会影响并发连接数。然后,针对不同的服务器软件分别说明如何查看配置和调整的参数。 对于系统层面,可以检查文件描述符的限制,使用ulimit命令查看当前用户的限制,或者查看/proc/sys/fs/file-max来了解系统级别的最大文件数。这部分需要详细说明,因为如果系统限制太低,服务器软件可能无法达到其配置的最大并发数。 接下来是具体的服务器软件。比如,对于Nginx,需要查看配置文件中的worker_connections和worker_processes,计算两者的乘积得到最大并发连接数。同时,还要注意是否启用了多路复用模式如epoll,这可能影响实际性能。 Apache的话,要看MPM模块的配置,比如Prefork或Worker,每个模块有不同的参数,如MaxRequestWorkers或MaxClients。Tomcat则涉及连接器配置中的maxConnections和acceptCount等参数。 数据库如MySQL,需要查看max_connections变量,可以通过SQL命令查询。另外,操作系统和中间件如负载均衡器的设置也可能影响最终结果,所以可能需要综合检查多个环节。 用户可能还需要知道如何调整这些参数,但问题主要是查看当前配置的最大值,所以重点放在查看方法上,而不是调整步骤。不过,适当提及调整的配置文件位置也是有帮助的,方便用户进一步操作。 还需要注意权限问题,某些命令可能需要root权限才能查看或修改系统级参数。比如修改file-max需要编辑sysctl.conf,而ulimit的修改可能涉及limits.conf文件。 最后,总结一下步骤,确保用户能分清楚不同层面的限制,以及针对不同服务器软件的具体检查方法。这样用户可以根据自己的服务器类型选择相应的步骤,逐步排查和确认最大并发连接数。</think>要查看服务器支持的最大并发连接数,需结合操作系统和服务器软件(如Nginx/Apache/Tomcat等)的配置综合分析。以下是分步骤排查方法: --- ### **一、操作系统层面限制** #### 1. 文件描述符限制(直接影响连接数上限) - **查看系统全局限制**: ```bash cat /proc/sys/fs/file-max ``` $$ \text{输出示例:} 100000 $$ 表示系统最多允许打开100,000个文件句柄。 - **查看当前用户限制**: ```bash ulimit -n ``` $$ \text{输出示例:} 1024 $$ 若数值过小,需修改`/etc/security/limits.conf`。 --- ### **二、Web服务器软件配置** #### 1. Nginx - **查看配置文件**(通常位于`nginx.conf`): ```nginx worker_processes auto; # Worker进程数 events { worker_connections 1024; # 单个Worker允许的连接数 } ``` $$ \text{最大并发连接数} = \text{worker\_processes} \times \text{worker\_connections} $$ > 示例:4个Worker × 1024 = 4096并发 - **查看当前连接数**: ```bash nginx -T 2>&1 | grep worker_connections ``` #### 2. Apache - **查看MPM模块配置**(如`httpd.conf`或`apache2.conf`): ```apache <IfModule mpm_prefork_module> MaxRequestWorkers 256 # 最大并发连接数 </IfModule> ``` 使用命令验证配置: ```bash apachectl -V | grep "MPM" ``` --- ### **三、数据库服务器(如MySQL)** - **查看最大连接数**: ```sql SHOW VARIABLES LIKE 'max_connections'; ``` $$ \text{输出示例:} \text{max\_connections} = 151 $$ --- ### **四、中间件与负载均衡器** - **如HAProxy**: 检查配置文件中的`maxconn`参数: ```cfg global maxconn 5000 ``` --- ### **五、综合验证方法** 1. **试工具**: 使用`ab`或`wrk`模拟并发请求: ```bash ab -n 10000 -c 500 http://your-server/ ``` - `-c 500`表示模拟500并发,观察是否报错`Too many open files` 2. **实时监控连接数**: ```bash ss -s # 查看当前所有连接统计 netstat -ant | grep ESTABLISHED | wc -l ``` --- ### **六、常见瓶颈** 1. **操作系统级**:`file-max`或`ulimit`过低 2. **服务器软件**:配置参数未优化 3. **硬件资源**:CPU/内存不足导致连接被丢弃 --- ### **总结步骤** 1. 检查操作系统文件描述符限制 2. 查看服务器软件配置中的连接数参数 3. 通过试验证实际承载能力 4. 根据业务需求逐步调整参数并监控稳定性 如需修改配置,请备份文件后谨慎操作,并重启服务生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值