评估系统负载

评估一个系统的最大容量:最高有多少连接。同时在线人数。

mysql实例的负载


 

 

前言:

MySQL数据库一般默认的连接超时时间为3600s(1小时),但是在进行大规模的线程事务操作时,一个连接会一直等待执行,这时候如果数据库的超时时间设置的过短,就可能会出现Mysql数据连接自动被释放,影响后面对数据库的操作。

当然MySQL连接设置的大小,要根据需求场景进行设置,wait_timeout过大也有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可 能会遭遇到“mysql has gone away”之类的问题。

所以需要根据自己项目业务场景,进行适当的设置超时时间。

首先介绍下如何查看mysql的超时时间方法

在mysql命令提示符下执行以下命令即可:

SHOW GLOBAL VARIABLES LIKE '%timeout%'

其次连接超时wait_timeout设置方法如下:

方案1.在mysql命令提示符执行以下命令即可(临时方法,重启MySQL服务器会失效,恢复默认值)

SET GLOBAL wait_timeout=15000

 

方案2.修改mysql的配置文件(推荐方法)

  • Windows下,配置文件路径为MySQL安装的根目录中。my.ini
  • Linux系统下,配置文件为路径/etc/my.cnf
[mysqld]

wait_timeout=10000
interactive_timeout=10000

保存退出,重启MySQL服务即可

https://www.cnblogs.com/wenzheshen/p/11066585.html

 

c24G装的mysql 能支持最多多少Mysql连接
mysql 默认超时时间,
druid 默认超时时间check时间
mysql check connect是否可用的时间


查看连接:
show processlist; 只展示100个连接
show full processlist; 展示所有连接

查看超时时间:
show variables like '%timeout%';
闲置连接的超时时间由wait_timeout控制。

 


28800s=3600s*8

3600s=60min*60s=3600s






大家知道在linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一。

在linux中执行ulimit -a 即可查询linux相关的参数,如下所示:

[root@mongodb11 ~]# 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) 256324
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) 256324
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

默认情况下,linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。

那么如何修改linux最大文件句柄数呢?其实很简单:

1、ulimit -n 2048

  这命令就可以修改linux最大文件句柄数,修改以后使用ulimit -a 查看修改的状态,如:

[root@mongodb11 ~]# ulimit -n 2048
[root@mongodb11 ~]# 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) 256324
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048
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) 256324
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

但是,这种方法只针对当前进程有效。重新打开一个shell或者开启一个进程,你就会发现参数还是ulimit -n xx修改之前的数字。那么有没有一劳永逸的方法呢?

当然有!那就是修改系统参数。

2、修改linux系统参数。vi /etc/security/limits.conf 添加

*  soft  nofile  65536

*  hard  nofile  65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:

[root@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) 256600
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
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) 256600
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

posted @ 2019-12-02 10:29  沧海一滴  阅读(265)  评论(0编辑  收藏  举报