Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72112
  • 博文数量: 15
  • 博客积分: 51
  • 博客等级: 民兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 22:29
个人简介

mysql dba

文章分类
文章存档

2016年(5)

2015年(9)

2013年(1)

我的朋友

分类: Mysql/postgreSQL

2016-03-26 14:12:22

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
阅读(2501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~