故障

压测高并发环境下,redis/mysql服务器连不上,应用程序报错获取不到连接等

分析

redis服务器默认设置的最大连接数maxclients是10000

在redis-cli命令行使用:info clients可以查看当前的redis连接数

config get maxclients 可以查询redis允许的最大连接数

mysql默认最大连接max_connections是100

查看 my.cnf 文件

Linux TCP默认连接 1024,最大连接数为 65536

```shell

[root@HA ~]# ulimit -n

1024

```

**处理 **

TCP默认修改

对于想支持更高数量的TCP并发连接的通讯处理程序,就必须修改Linux对当前用户的进程同时打开的文件数量的软限制(soft limit)和硬限制(hardlimit)。其中软限制是指Linux在当前系统能够承受的范围内进一步限制用户同时打开的文件数;硬限制则是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量。通常软限制小于或等于硬限制。

redis和mysql最大连接数修改

```shell
修改最大连接数配置,默认10000,可以在redis.conf配置文件中修改
# maxclients 10000
##(1.2)启动redis.service服务时加参数--maxclients 100000来设置最大连接数限制
redis-server --maxclients 100000 -f /etc/redis.conf
##命令行查看 & 修改稿redis最大连接数
127.0.0.1:6379> CONFIG GET maxclients
##1) "maxclients"
##2) "10000"
127.0.0.1:6379>
```