随着网站的开放,访问量不断增大,那么这个时候服务器的负载势必会持续升高,必须要才需一些办法来应付。这里先不考虑更换机器和各种软件层面的优化,先从架构的结构上来做一些调整。我们可以把数据库与应用从一台机器分到两台机器

变化:
网站从一台变成了2台,这个变化对我们来说影响非常小。单机的情况下,我们应用采用JDBC
的方式来和数据库进行连接,现在数据库与应用分开了,我们只需要在配置文件中把数据库的地址
从本机改成数据库服务器的ip地址就行。 
对于开发、测试、部署都没有影响

调整以后我们能够缓解当前的系统压力,不过随着时间的退役,访问量继续增大的话,我们的系统还是需要做改造

为什么这么分呢?从计算机本身的角度来考虑的话,一个请求的访问到处理最终到返回,性能瓶颈只会是:CPU、文件IO、网络IO、内存、等因素。
而一台计算机中这些纬度是有性能瓶颈的,如果某个资源消耗过多,通常会造成系统的响应速度较慢,所以增加一台机器,
使得数据库的IO和CPU资源独占一台机器从而增加性能。
这个地方插入一点题外话,就是简单说一下各个资源的消耗原因。

CPU/IO/内存:

1. 主要是上下文的切换,因为每个CPU核心在同一时刻只能执行一个线程,而CPU的调度有几种方式,比如抢占式和轮询等,以抢占式为例,
每个线程会分配一定的执行时间,当达到执行时间、线程中有IO阻塞或者有高优先级的线程要执行时。CPU会切换执行其他线程。
而在切换的过程中,需要存储当前线程的执行状态并恢复要执行的线程状态,这个过程就是上下文切换。比如IO、锁等待等场景下也会触发上下文切换,当上下文切换
过多时会造成内核占用比较多的CPU。
 
2. 文件IO,比如频繁的日志写入,磁盘本身的处理速度较慢、都会造成IO性能问题

3. 网络IO,带宽不够

4. 内存,包括内存溢出、内存泄漏、内存不足 
实际上不管是应用层的调优也好,还是硬件的升级也好。其实无非就是这几个因素的调整。

单机负载告警,数据库与应用分离相关推荐

  1. 2017双11技术揭秘—阿里数据库计算存储分离与离在线混布

    摘要: 随着阿里集团电商.物流.大文娱等业务的蓬勃发展,数据库实例以及数据存储规模不断增长,在传统基于单机的运维以及管理模式下,遇到诸多如成本,调度效率等问题,因此,2017年首次对数据库实现计算存储 ...

  2. mysql读写分离_Mysql数据库09MySQL读写分离

    Mysql数据库09-MySQL读写分离 一.读写分离应用案例分析 在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作.解决方法:配置多台数据库服务器以实现主从复制+读写分离. 二.读 ...

  3. Mycat - 实现数据库的读写分离与高可用

    前言 开心一刻 上语文课,不小心睡着了,坐在边上的同桌突然叫醒了我,并小声说道:"读课文第三段".我立马起身大声读了起来.正在黑板写字的老师吓了一跳,老师郁闷的看着我,问道:&qu ...

  4. ef mysql 读写分离_基于 EntityFramework 的数据库主从读写分离服务插件

    基于 EntityFramework 的数据库主从读写分离服务插件 1. 版本信息和源码 1.1版本信息 v1.01 beta(2015-04-07),基于 EF 6.1 开发,支持 EF 6.1 之 ...

  5. 17.sql server数据库使用规则、二八原则、数据库查询集群--数据库读写分离多种实现、数据库配置读写分离(by-朝夕)

    Database 课程目标 环境准备: 一.二八原则 二.数据库读写分离 好处: 绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求.而且 ...

  6. 数据库的“读写分离”

    有一些技术同学可能对于"读写分离"了解不多,认为数据库的负载问题都可以使用"读写分离"来解决. 这其实是一个非常大的误区,我们要用"读写分离" ...

  7. 徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离?

    徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离? 完成:第一遍 1.理想的主从架构实现的效果是怎样的? 主库负责所有读写操作,从库只实现对主库备份功能,这样的主从架构性价比是很低的 ...

  8. 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现...

    回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目录: src\ NDF.Data.EntityFramework\Maste ...

  9. thinkphp读写mysql的枷锁_thinkphp5 数据库配置读写分离

    mysql配置主从数据库同步成功后,接下来就要在程序中配置数据库来实现读写分离啦 我们这里用的thinkphp5框架 配置读写分离非常简单 return [ // 数据库类型 'type' => ...

最新文章

  1. redis zset转set 反序列化失败_Redis只往zset有序集合添加不存在的数据:关键字索引查询构建+源码分析...
  2. python中for x in range_python教程:对 [lambda x: x*i for i in range(4)] 理解
  3. CGLib动态代理原理
  4. 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇)
  5. 用户自定义函数代替游标进行循环拼接
  6. ES启动报错 :could not fidn java; set JAVA_HOME or ensure java is in PATH
  7. 课设错误调试(一)No qualifying bean of type
  8. IAR工程适配GD32芯片
  9. stc单片机id加密c语言,STC单片机内部ID读取
  10. 三十四、Expandable grid 可扩展的表格
  11. OSPF三种验证配置
  12. 三年前端路:分享我的工作经验与学习经历
  13. [转载]NFC问题分析
  14. 最早采用二进制的计算机,计算机 | 中国古代人最早提出的二进制思想?
  15. 2.springcloud配置ssh
  16. 斐波那契数列_菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
  17. Android - 简单的显示高德SDK中的3D地图
  18. 最新轻量级精简风小说网站源码+支持WAP端
  19. I Can See You 远程控制软件最新下载地址(含所有设计文档)
  20. 两道小学生的题----1000: 梦里的难题、1002: 拳皇

热门文章

  1. JAVA读取文件操作时路径的斜杠问题
  2. php 栈、 出栈、入栈
  3. 1Python生成高质量Html文件:Pyh模块+Bootstrap框架
  4. 翻译(六)——T-SQL的进阶之路:超过基础的2级水平:写子查询
  5. 【Android开发】XML文件解析
  6. 一条代码解决各种IE浏览器兼容性问题
  7. hadoop学习;安装jdk,workstation虚拟机v2v迁移;虚拟机之间和跨物理机之间ping网络通信;virtualbox的centos中关闭防火墙和检查服务启动...
  8. [asp.net] 获取网页访问来路的几种方法
  9. 【Spring MVC学习】spring mvc入门示例
  10. 小程序渲染html的两种方法