连接数

数据库开发

廉价感情. 提交于 2019-12-07 00:53:05
#数据库连接池 ##建立连接 通过 conncetion = DrvierManager.getConnection() 获取数据库连接,这段代码通过对应的JDBC驱动,完成了客户端与服务器的大量交互。由于数据库连接经过4次,才能连接成功。则在复杂的网络环境下,建立数据连接的网络开销比较高。 ###MySQL获取数据库连接 1.请求建立连接 MySQL客户端向MySQL服务器发起请求建立连接 2.发送随机密码种子 服务器端会随机生成一组密码种子返回给客户端 3.发送加密密码 客户端利用密码种子和连接数据库的密码,按照约定的加密算法,可以计算得到加密的密码,然后在将这个密码发送到MySQL服务器端进行验证 4.连接建立成功 MySQL服务器经过对加密密码的验证,连接建立成功 ##多线程数据库访问 在实际业务场景中,多个用户访问Java应用程序,我们会启动线程去处理用户请求,如果要访问数据库,则我们需要创建connection对象,建立到后端数据库的物理连接,在SQL执行结束之后,随着close方法结束,数据库连接被销毁,线程也会被释放。 当用户再次访问时,会重复这个过程,这个过程花费大量的时间建立连接。 ##连接复用 由于建立连接需要花费大量时间,我们可以使用数据库连接池对连接进行重复使用。每个线程在使用数据库连接后并不是立即销毁。而是把数据库连接交给下一个需要访问数据库的线程

redis 查看当前连接数

淺唱寂寞╮ 提交于 2019-12-06 02:33:56
下载客户端 Redis Desktop Manager,双击打开 左下角点击 connect to redis server 输入连接名、ip和密码 ,端口默认6379,最后点击OK 双击,就可以连接到redis了 右键 ,点击console 打开命令行 查看redis当前连接数: info clients 查看redis最大连接数:CONFIG GET maxclients 来源: https://www.cnblogs.com/songdongdong6/p/11957336.html

增加tomcat连接数

天大地大妈咪最大 提交于 2019-12-06 01:21:24
在tomcat配置文件server.xml中的配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100 enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false connectionTimeout: 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。 如: <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" acceptCount="100" /> maxThreads="150" 表示最多同时处理150个连接 minSpareThreads="25"

java连接池的maxIdle该如何配置

烈酒焚心 提交于 2019-12-05 23:14:46
问题现象 用60个线程并发访问某个读和写均有的业务接口,性能测试人员查看Oracle数据库负载CPU非常高,而且oracle的 Logons指标达到 148.1次 /秒(这个值的含义是数据库客户端登录认证的每秒的次数)。 而且查看应用程序中的线程栈,也发现了较多数量的线程处于创建新的oracle物理连接处。 这当时就让我有点儿糊涂了,我们不是用了连接池吗?怎么还会经常创建物理连接呢? 问题分析解决 遇到这个问题,我当时也是从自己掌握的各种知识里去想可能的原因,都想到了是不是因为tcp连接的超时时间是不是太短,仔细一想这些可能性都排除掉了。然后查看连接池的配置,当时我们的同学告诉我这些配置跟线上的是一样的,应该没有问题,我当时是就怀疑是maxIdle设置太小导致的原因,但是没有什么具体的依据。 所以我就简单开发了一个页面可以实时查看当时应用连接池的active number(当前被使用的数据库连接数)和idle number(当前处于空闲状态的数据库连接数)。再次运行测试脚本,通过查看连接池的连接数就可以看出来,连接数的波动较大,有时候连接总数(上面两个数字相加)从20多突然降到10,说明物理连接被销毁了,创建了新的物理连接,那这就与我们看到的一些异常现象相吻合了,创建新的连接就会导致oracle数据库服务器的logons数量增加。由于连接的复用率较差,导致频繁的创建物理连接

Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack

此生再无相见时 提交于 2019-12-05 22:49:07
ORA-12519: TNS:no appropriate service handler found 当使用阿里的Druid连接池时报的这个错,也是同样的原因 重启应用时报错,错误信息如题, ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程 ,然后项目启动失败,使用可视化工具连接数据库时也报同样的错误。 是什么原因呢? 通常是由于很多人或者很多应用(java应用、R应用等)连接数据库,导致连接数(session)数量超出限制。 所以就看看现在数据库连接数设置的最大是多少,以及现在连接数。 -- 以数据库管理员的身份登陆PL/SQL sqlplus / as sysdba; -- 查看当前连接进程数 SQL>select count(*) from v$process; -- 查看连接数上限 SQL>select value from v$parameter where name = 'processes'; -- 查询processes数量 SQL> show parameter processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0 db_writer

nginx 负载均衡

走远了吗. 提交于 2019-12-05 20:43:12
分类 1、轮询法 轮询法,就是将用户的请求轮流分配给服务器,就像是挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。 2、随机法 随机法,是随机选择一台服务器来分配任务。它保证了请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子[5]。但是随着任务量的增大,它的效果趋向轮询后也会具有轮询算法的部分缺点。 3、最小连接法 最小连接法,将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。 最小连接法适用于各个节点处理的性能相似时。任务分发单元会将任务平滑分配给服务器。但当服务器性能差距较大时,就无法达到预期的效果。因为此时连接数并不能准确表明处理能力,连接数小而自身性能很差的服务器可能不及连接数大而自身性能极好的服务器。所以在这个时候就会导致任务无法准确的分配到剩余处理能力强的机器上 官方示例配置及解释 upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3;

tomcat6 高并发配置 与优化

那年仲夏 提交于 2019-12-05 18:48:58
tomcat 的 server.xml 配置文件说明: server.xml 配置 1. port = "8080" protocol = "HTTP/1.1" 2. maxThreads = "30000" 3. minSpareThreads = "512" 4. maxSpareThreads = "2048" 5. enableLookups = "false" 6. redirectPort = "8443" 7. acceptCount = "35000" 8. debug = "0" 9. connectionTimeout = "40000" 10. disableUploadTimeout = "true" 11. URIEncoding = "UTF-8" /> 参数说明 : connectionTimeout 网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。 keepAliveTimeout 长连接最大保持时间(毫秒)。此处为 15 秒。 maxKeepAliveRequests 最大长连接个数( 1 表示禁用, -1 表示不限制个数,默认 100 个。一般设置在 100~200 之间) maxHttpHeaderSize http 请求头信息的最大程度,超过此长度的部分不予处理。一般 8K 。

使用Psi Probe监控Tomcat8.5

北城余情 提交于 2019-12-05 17:34:47
一、从GitHub上下载Psi Probe的war包 https://github.com/psi-probe/psi-probe/releases 可以看到当前最新版是3.3.1,下载 probe.war 二、部署 1. 将下载下来的war包拷贝至tomcat的webapps/目录下 2. 配置conf/tomcat-users.xml文件。 <!-- psi probe相关角色配置 --> <role rolename="probeuser"/> <role rolename="poweruser"/> <role rolename="poweruserplus"/> <role rolename="manager-gui"/> <user username="admin" password="123456" roles="manager-gui"/> 其中,admin/123456是访问probe界面需要的用户名密码 2. 配置 bin/catalina.bat 或 bin/catalina.sh 文件 Windows下的Tomcat: rem 开启远程jvm支持 set JAVA_OPTS=-Dcom.sun.management.jmxremote Linux下的Tomcat: export JAVA_OPTS=$JAVA_OPTS" -Dcom.sun

Mysql 连接数,最大并发数设置

£可爱£侵袭症+ 提交于 2019-12-05 17:24:29
项目中可能会遇到MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。 首先,首先我们来看下mysql的最大连接数: show variables like '%max_connections%'; 如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区, 就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。 数值过小会经常出现ERROR 1040: Too many connections错误 show global status like 'Max_used_connections'; 对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高. Max_used_connections / max_connections * 100% = 3/512 *100% ≈ 0.0058% 我们可以看到占比远低于10%(因为这是本地监控测试服务器

2/3/4/7层次的负载均衡

为君一笑 提交于 2019-12-05 14:53:38
1.快速区分多种负载均衡   负载均衡有 2/3/4/7层多种,对应于网络的七层模型,即物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。   那么二层负载就是数据链路负载,三层就是网络层负载,四层就是传输层负载,七层就是应用层负载。   二层负载添加额外的数据链路来提供传输能力,一般是逻辑上的捆绑。提供虚拟MAC地址接收数据,再转发到真正的MAC主机上。方法主要有链路聚合方法和PPP捆绑。     以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。     PPP捆绑是将多个物理链路合并或者捆绑成一个大逻辑链路的机制。主要起到增加带宽,减少延时,线路备份的作用,另外一个作用是可以将不同类型的接口捆绑为一个逻辑接口。   三层负载提供虚拟IP接收数据,然后转发到真正的IP主机上。一般是通过F5硬件来提供这种负载。   四层负载是IP+PORT负载,提供虚拟的IP和端口接收数据后转发到真正服务器上。   七层负载是URL负载,提供虚拟URL或主机名接收数据后转发到真正的地址。 2.软硬件负载均衡   首先要明白主机和主机的通信是通过IP和端口进行的,所以软件所能实现的负载均衡只能是4-7层,而硬件可以应用于二层,三层的负载均衡。