找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16544|回复: 0

服务器并发连接限制运维调优配置

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-12 02:46:54 | 显示全部楼层 |阅读模式
服务器并发连接限制运维调优配置

并发连接限制概述

服务器并发连接限制是指对服务器同时处理的客户端连接数量进行控制,以防止服务器过载、保证服务质量并提高安全性。

常见并发连接限制场景

  • Web服务器 (Nginx, Apache)
  • 数据库服务器 (MySQL, PostgreSQL)
  • 应用服务器 (Tomcat, Node.js)
  • 网络服务 (SSH, FTP)


调优配置方法

1. Web服务器配置

Nginx:
  1. events {
  2.     worker_connections 1024;  # 每个worker进程的最大连接数
  3. }
  4. http {
  5.     # 全局最大连接数 = worker_processes * worker_connections
  6.     # 限制单个IP的并发连接数
  7.     limit_conn_zone $binary_remote_addr zone=perip:10m;
  8.    
  9.     server {
  10.         limit_conn perip 10;  # 每个IP最多10个连接
  11.     }
  12. }
复制代码

Apache:
  1. # 在httpd.conf或虚拟主机配置中
  2. <IfModule mpm_prefork_module>
  3.     MaxRequestWorkers 256  # 最大并发连接数
  4.     MaxConnectionsPerChild 1000
  5. </IfModule>
  6. # 使用mod_evasive防止DDoS
  7. <IfModule mod_evasive.c>
  8.     DOSHashTableSize 3097
  9.     DOSPageCount 5       # 同一页面5秒内访问次数
  10.     DOSSiteCount 50      # 整个站点5秒内访问次数
  11.     DOSPageInterval 5
  12.     DOSSiteInterval 5
  13.     DOSBlockingPeriod 10
  14. </IfModule>
复制代码

2. 数据库服务器配置

MySQL:
  1. -- 查看当前连接数
  2. SHOW STATUS LIKE 'Threads_connected';
  3. -- 在my.cnf中配置
  4. [mysqld]
  5. max_connections = 500       # 最大连接数
  6. max_connect_errors = 100    # 最大连接错误数
  7. wait_timeout = 60           # 非交互连接超时时间(秒)
  8. interactive_timeout = 300   # 交互连接超时时间(秒)
复制代码

PostgreSQL:
  1. -- 在postgresql.conf中配置
  2. max_connections = 100       # 最大连接数
复制代码

3. 应用服务器配置

Tomcat:
  1. <!-- 在server.xml中 -->
  2. <Connector port="8080"
  3.            maxThreads="200"    <!-- 最大线程数(并发连接数) -->
  4.            minSpareThreads="20"
  5.            maxConnections="10000" <!-- 最大连接队列大小 -->
  6.            acceptCount="100"    <!-- 当所有可能的处理线程都在使用时,传入连接请求的最大队列长度 -->
  7.            connectionTimeout="20000"/>
复制代码

4. 系统级限制

Linux内核参数调整 (
  1. /etc/sysctl.conf
复制代码
):
  1. # 增加最大文件描述符限制
  2. fs.file-max = 2097152
  3. # 调整TCP参数
  4. net.core.somaxconn = 65535
  5. net.core.netdev_max_backlog = 65535
  6. net.ipv4.tcp_max_syn_backlog = 65535
  7. net.ipv4.tcp_fin_timeout = 30
  8. net.ipv4.tcp_tw_reuse = 1
  9. net.ipv4.tcp_tw_recycle = 1 (注意:在Linux 4.12+已移除)
复制代码

用户级限制 (
  1. /etc/security/limits.conf
复制代码
):
  1. * soft nofile 65535
  2. * hard nofile 65535
复制代码

监控与调优策略

  • 监控工具:
    1. netstat -an | grep ESTABLISHED | wc -l
    复制代码
    (查看当前连接数)
    1. ss -s
    复制代码
    (统计socket状态)
    1. vmstat 1
    复制代码
    (系统资源监控)
  • 专业监控工具: Zabbix, Prometheus+Grafana
  • 调优策略:
  • 根据服务器硬件资源(CPU、内存、网络带宽)调整连接数限制
  • 实施连接池管理(数据库连接池、HTTP连接池)
  • 使用CDN或负载均衡分散请求
  • 实现优雅降级,当达到限制时返回友好提示而非直接拒绝
  • 安全考虑:
  • 实施合理的超时机制
  • 对异常连接模式进行监控和阻断
  • 定期审查连接日志,识别潜在攻击


注意事项

  • 调整连接限制时需考虑服务器硬件资源,避免设置过高导致资源耗尽
  • 修改配置后需测试验证,确保服务稳定性
  • 不同应用场景可能需要不同的连接限制策略
  • 在云环境中,还需考虑云平台的安全组和网络ACL限制


通过合理配置并发连接限制,可以显著提高服务器的稳定性、安全性和响应能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 17:18 , Processed in 0.069683 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表