连接数

阿里云-Redis-Help-连接实例-Redis客户端连接:Jedis客户端

无人久伴 提交于 2020-04-08 09:40:26
ylbtech-阿里云-Redis-Help-连接实例-Redis客户端连接:Jedis客户端 1. 返回顶部 1、 Jedis客户端 Jedis客户端访问云数据库Redis版服务,有以下 两种方法 : Jedis单链接 JedisPool连接池连接 操作步骤如下: 下载并安装Jedis客户端,详细步骤请参见 Jedis使用说明 。 Jedis单连接示例 打开Eclipse客户端,创建一个Project,输入如下代码段: import redis.clients.jedis.Jedis; public class jedistest { public static void main(String[] args) { try { String host = "xx.kvstore.aliyuncs.com";//控制台显示访问地址 int port = 6379; Jedis jedis = new Jedis(host, port); //鉴权信息 jedis.auth("password");//password String key = "redis"; String value = "aliyun-redis"; //select db默认为0 jedis.select(1); //set一个key jedis.set(key, value); System.out

MySQL打造扛得住的数据库架构.md-目前只有监控篇

怎甘沉沦 提交于 2020-04-08 04:53:26
[TOC] MySQL性能管理及架构设计笔记 数据库监控 要监控的内容 对数据库的可用性进行监控: 不是仅仅监控数据库进程是否存在,要通过网络连接到数据库并确定是可用的 对数据库性能进行监控: QPS TPS, 并发线程数量, innnoDB阻塞和死锁 对主从复制进行监控: 主从链路状态, 主从延迟, 主从数据一致性 对服务器资源监控: 磁盘: 且并不意味着磁盘空间大,MySQL能用的就大,因为可能分区分配的不够大. CPU使用率 内存使用情况 swap分区使用情况 网络IO使用情况 数据库可用性监控 确认数据库是否可用通过网络正常连接 要注意,如果我们在MySQL本机使用SQL来连接MySQL,这并不意味着外部也能通过tcp/ip协议来访问MySQL,因为外部面临的环境更为复杂. 比如tcp/ip被占满之类的, 所以我们必须通过远程服务器来实际的连接请求: 使用mysqladmin: # 如果数据库存活,该命令会返回mysqld is alive ~ ⌚ 23:30:42 $ mysqladmin -u root -p -h localhost ping Enter password: mysqld is alive 使用Telnet(一般作为手动使用) # telnet连接成功后,都懂得,只要不是提示连接失败,同时提供给我们可以交互式命令行,那就是成功了 ~ ⌚ 23:42

为什么要分库分表?

落花浮王杯 提交于 2020-04-05 23:08:21
随着近些年信息化大跃进,各行各业无纸化办公产生了大量的数据,而越来越多的数据存入了数据库中。当使用MySQL数据库的时候,单表超出了2000万数据量就会出现性能上的分水岭。 并且物理服务器的CPU、内存、存储、连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。 为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大表进行分割,然后实施更好的控制和管理,同时使用多台机器的CPU、内存、存储,提供更好的性能。 而分而治之则有两种方式:垂直拆分和水平拆分。 垂直拆分 垂直拆分分为垂直分库和垂直分表。先说说垂直分库。垂直分库其实是一种简单逻辑分割。比如我们的数据库中有商品表Products、还有对订单表Orders,还有积分表Scores。接下来我们就可以创建三个数据库,一个数据库存放商品,一个数据库存放订单,一个数据库存放积分。如下图所示: 垂直分库有一个优点,他能够根据业务场景进行孵化,比如某一单一场景只用到某2-3张表,基本上应用和数据库可以拆分出来做成相应的服务。 再来说说垂直分表,比较适用于那种字段比较多的表,假设我们一张表有100个字段,我们分析了一下当前业务执行的SQL语句,有20个字段是经常使用的,而另外80个字段使用比较少。 这样我们就可以把20个字段放在主表里面,我们在创建一个辅助表,存放另外80个字段。当然主表和辅助表都是有主键的

系统性能

半城伤御伤魂 提交于 2020-04-01 02:55:59
1、性能相关数据: • 系统用户数:决定数据量,对处理速度有影响,可事先评估 • 在线用户数:决定访问压力的主要数据,反映总体处理能力的指标 • 思考时间:影响访问压力的重要因素 • 响应时间:反映系统处理个别请求速度快慢的指标 • 吞吐率:反映总体处理速度的指标 • 并发数:反映总体处理能力的指标 • 资源占用率:由访问压力决定,反映系统负荷程度的指标 2、性能指标 单一业务 • 吞吐率:系统单位时间内可处理的业务量 • 并发数:系统可同时处理的最大请求数 • 响应时间:从用户发起请求到请求完成所花费的时间 复合业务 • 在线用户数:在一定时间区间内对系统产生了访问的用户数。对于后端存在多个 接口或功能的系统,不方便用单一的吞吐率来表示系统的处理能力,因此可以间 接的用前端在线用户数来表示,其中隐含了各个功能或接口被使用的比例。 • 响应时间:从用户发起请求到请求完成所花费的时间 3、分析工具- nmon nmon 工具可以为 Linux 性能专家提供监视和分析性能数据的功能,包括: • CPU 使用率 • 内存使用情况 • 磁盘 I/O 速度、传输和读/写比率 • 文件系统中的可用空间 • 网络 I/O 速度、传输和读/写比率 • 消耗资源最多的进程 4、中间件配置优化 - nginx • worker_processes 8; nginx进程数,建议按照cpu数目来指定

数据库连接池到底应该设多大?

↘锁芯ラ 提交于 2020-03-26 18:51:40
本文内容95%译自这篇文章: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing ) 我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。故在此做译文分享。 接下来是正文 数据库连接池的配置是开发者们常常搞出坑的地方,在配置数据库连接池时,有几个可以说是和直觉背道而驰的原则需要明确。 1万并发用户访问 想象你有一个网站,压力虽然还没到Facebook那个级别,但也有个1万上下的并发访问——也就是说差不多2万左右的TPS。那么这个网站的数据库连接池应该设置成多大呢?结果可能会让你惊讶,因为这个问题的正确问法是: “这个网站的数据库连接池应该设置成多 小 呢?” 下面这个视频是Oracle Real World Performance Group发布的,请先看完: http://www.dailymotion.com/video/x2s8uec (因为这视频是英文解说且没有字幕,我替大家做一下简单的概括:) 视频中对Oracle数据库进行压力测试,9600并发线程进行数据库操作,每两次访问数据库的操作之间sleep 550ms,一开始设置的中间件线程池大小为2048:

Linux网络IO模型

别来无恙 提交于 2020-03-24 13:53:25
同步和异步,阻塞和非阻塞 同步和异步 关注的是结果消息的通信机制 同步 : 同步的意思就是调用方需要主动等待结果的返回 异步 : 异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函数等。 阻塞和非阻塞 主要关注的是等待结果返回调用方的状态 阻塞 : 是指结果返回之前,当前线程被挂起,不做任何事 非阻塞 : 是指结果在返回之前,线程可以做一些其他事,不会被挂起。 两者的组合 1. 同步阻塞 : 同步阻塞基本也是编程中最常见的模型,打个比方你去商店买衣服,你去了之后发现衣服卖完了,那你就在店里面一直等,期间不做任何事 ( 包括看手机 ) ,等着商家进货,直到有货为止,这个效率很低。 2. 同步非阻塞 : 同步非阻塞在编程中可以抽象为一个轮询模式,你去了商店之后,发现衣服卖完了,这个时候不需要傻傻的等着,你可以去其他地方比如奶茶店,买杯水,但是你还是需要时不时的去商店问老板新衣服到了吗。 3. 异步阻塞 : 异步阻塞这个编程里面用的较少,有点类似你写了个线程池 ,submit 然后马上 future.get () ,这样线程其实还是挂起的。有点像你去商店买衣服,这个时候发现衣服没有了,这个时候你就给老板留给电话,说衣服到了就给我打电话,然后你就守着这个电话,一直等着他响什么事也不做。这样感觉的确有点傻,所以这个模式用得比较少。 4. 异步非阻塞 : 异步非阻塞

数据库连接池技术

半世苍凉 提交于 2020-03-23 05:04:56
最近用到一个数据库连接池,由于要分析其各种性能指标,所以对数据库连接池技术做了一个简单的分析。从网上找到一个关于连接池设计的文章,写的不错。我认为:如果要设计一个数据库连接池,可以参考它的基本思路;如果要提高性能,还有很多细节要仔细研究,并做细致的分析对比。以下是转载的文章。 连接池原理 连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(非凡是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。连接池主要由三部分组成:连接池的建立、连接池中连接的使用治理、连接池的关闭。下面就着重讨论这三部分及连接池的配置问题。 1.1 连接池的建立 应用程序中建立的连接池其实是一个静态的。所谓静态连接池是指连接池中的连接在系统初始化时就已分配好,且不能随意关闭连接。Java中提供了很多容器类可以方便的构建连接池,如:Vector、Stack、Servlet、Bean等,通过读取连接属性文件Connections.properties与数据库实例建立连接。在系统初始化时,根据相应的配置创建连接并放置在连接池中

nginx安装

*爱你&永不变心* 提交于 2020-03-21 20:02:44
一 、nginx http服务器的特色及优点 1、支持高并发:能支持几万并发连接 2、资源消耗少:在3完并发连接下,开启10个nginx线程消耗内存不到200MB 3、可以做http反向代理及加速缓存,即负载均衡,内置对RS节点服务健康检查功能 4、具备Squid等专业缓存软件的缓存功能 5、支持异步网络I/O事件模型epoll 二 、select和epoll对比 select和epoll对比如下表所示 select epoll 性能 随着连接数增加,急剧下降。处理成千上万并发连接数时,性能很差。 随着连接数增加,性能基本上没有下降。处理成千上万并发连接时,性能很好。 连接数 连接数有限制,处理的最大连接数不超过1024。如果要处理超过1024个连接数,则需要修改FD_SETSIZE宏,并重新编译 。 连接数无限制。 内在处理机制 线性轮询 回调callback 开发复杂性 低 中 三、nginx安装 安装nginx需安装pcre 、pcre-devel 、Open-ssl-devel useradd nginx –s /sbin/nginx -M [root@serverNFS_A nginx-1.6.3]# ./configure --prefix=/application/nginx-1.6.3 \ --user=nginx \ --group=nginx \ --with

数据库连接池原理

偶尔善良 提交于 2020-03-15 09:32:31
DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4。 DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 JDBC 3。 DBCP 1.4 版本需要运行于 JDK 1.6 ,支持 JDBC 4。 1.3和1.4基于同一套源代码,含有所有的bug修复和新特性。因此在选择DBCP版本的时候,要看你用的是什么JDK版本。 DBCP1.2版本性能一般,比c3p0差挺多。DBCP1.4和1.3,配合(依赖)commons pool 1.6的jar包,各方面功能、性能推进到新的高峰。相对1.2版本提高不少。超越(或相当)了c3p0.建议使用DBCP1.4或1.3 + commons pool 1.6 Tomcat7 中保留DBCP连接池,以兼容已有应用。并提供了新的Tomcat JDBC pool作为DBCP的可选替代。新出的Tomcat JDBC pool,据说比DBCP 1.4要好,未接触,也不在本文讨论范围内。 DBCP连接池配置参数讲解 ----------------------------- 一、Apache官方DBCP文档给出的配置示例: 可参见:http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto

数据库连接池原理

可紊 提交于 2020-03-15 09:31:55
—— 连接池用什么数据结构实现? —— 实现连接池的代码 —— 线程安全问题 【数据库连接池的设计思路及java实现】【 http://blog.csdn.net/shijinupc/article/details/7836129】 【Java的JDBC数据库连接池实现方法】【 http://developer.51cto.com/art/200907/137300.htm 】 ​ 【设计数据库连接池,要考虑哪些问题?】 1. 有一个简单的函数从连接池中 得到 一个 Connection。 2. close 函数必须将connection 放回 数据库连接池。 3. 当数据库连接池中没有空闲的connection,数据库连接池必须能够 自动增加 connection 个数。 4. 当数据库连接池中的connection 个数在某一个特别的时间变得很大,但是以后很长时间只用其中一小部分, 自动将多余connection 关闭 。 5. 如果可能,应该提供debug信息 报告没有关闭的 new Connection。 【四个流行的Java连接池】 C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 BoneCP