故障
压测高并发环境下,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>
```