openssh升级到7.1 影响 系统最大句柄 从而影响 mysql max_connections. 最多会涨到214(在文件句柄是系统默认1024的情况下)。
我实验模拟了一次,升级到openssh 7.1之后,跟现场情况一样。limits.conf 已经修改,但是最大文件句柄还是系统默认1024.从而影响了数据库的最大链接数,虽然配置文件中设置了max_connections=8090,但是show variables like '%max_connections%'; 返回结果却是214.
通过root su 到 普通用户下 ulimit -a 是没问题的,但是直接ssh mysql@xx.xx.xx.xx 这样会ulimi -a 结果会是最大文件句柄为1024,优化设置不生效。
跟现场一样的现象:
[root@localhost opt]# ssh mysql@192.168.1.110
mysql@192.168.1.110's password:
Last login: Fri Mar 25 20:14:18 2016 from 192.168.1.110
[mysql@localhost ~]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14826
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 14826
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
==================================================================
按照配置修改之后,优化参数生效了。跟Limits.conf中配置的一致,
还是只在 /etc/security/limits.conf中配置。
生效后的效果:
[root@localhost opt]# ssh mysql@192.168.1.110
mysql@192.168.1.110's password:
Last login: Fri Mar 25 20:15:24 from 192.168.1.110
[mysql@localhost ~]$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14826
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 409600
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 65535
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
=====================================================================
解决方法:
vi /etc/ssh/sshd_config
把 UseLogin 设置为 yes,
#UseLogin no
UseLogin ye
重启ssh服务
service sshd restart
改完之后,必须重启Mysql服务,配置才生效。 可以先动态修改全局配置跟配置文件中的一样
mysql> set global max_connections=9000;
mysql> set global max_user_connections=8900;
执行查看最大used_connection:
mysql> show global status like 'Max_used_connections';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 1349 |
+----------------------+-------+
1 row in set (0.00 sec)
最大的connection:
mysql> show global variables like '%max_connection%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 8096 |
---------------------------
下次重启数据库的时候,还是配置的这个值。
如果是root用户启动没事,如果是普通用户启动,需要添加优化配置。
在这个文件/etc/security/limits.conf追后添加优化选项
@mysql soft core unlimited
@mysql hard core unlimited
@mysql soft fsize unlimited
@mysql hard fsize unlimited
@mysql soft data unlimited
@mysql hard data unlimited
@mysql soft nproc 65535
@mysql hard nproc 65535
@mysql soft stack unlimited
@mysql hard stack unlimited
@mysql soft nofile 409600
@mysql hard nofile 409600
# End of file
阅读(2566) | 评论(0) | 转发(0) |