概述
随着网站的开放,访问量不断增大,那么这个时候服务器的负载势必会持续升高,必须要才需一些办法来应付。这里先不考虑更换机器和各种软件层面的优化,先从架构的结构上来做一些调整。我们可以把数据库与应用从一台机器分到两台机器
变化:
网站从一台变成了2台,这个变化对我们来说影响非常小。单机的情况下,我们应用采用JDBC
的方式来和数据库进行连接,现在数据库与应用分开了,我们只需要在配置文件中把数据库的地址
从本机改成数据库服务器的ip地址就行。
对于开发、测试、部署都没有影响
调整以后我们能够缓解当前的系统压力,不过随着时间的退役,访问量继续增大的话,我们的系统还是需要做改造
为什么这么分呢?从计算机本身的角度来考虑的话,一个请求的访问到处理最终到返回,性能瓶颈只会是:CPU、文件IO、网络IO、内存、等因素。
而一台计算机中这些纬度是有性能瓶颈的,如果某个资源消耗过多,通常会造成系统的响应速度较慢,所以增加一台机器,
使得数据库的IO和CPU资源独占一台机器从而增加性能。
这个地方插入一点题外话,就是简单说一下各个资源的消耗原因。
CPU/IO/内存:
1. 主要是上下文的切换,因为每个CPU核心在同一时刻只能执行一个线程,而CPU的调度有几种方式,比如抢占式和轮询等,以抢占式为例,
每个线程会分配一定的执行时间,当达到执行时间、线程中有IO阻塞或者有高优先级的线程要执行时。CPU会切换执行其他线程。
而在切换的过程中,需要存储当前线程的执行状态并恢复要执行的线程状态,这个过程就是上下文切换。比如IO、锁等待等场景下也会触发上下文切换,当上下文切换
过多时会造成内核占用比较多的CPU。
2. 文件IO,比如频繁的日志写入,磁盘本身的处理速度较慢、都会造成IO性能问题
3. 网络IO,带宽不够
4. 内存,包括内存溢出、内存泄漏、内存不足
实际上不管是应用层的调优也好,还是硬件的升级也好。其实无非就是这几个因素的调整。
最后
以上就是英俊狗为你收集整理的单机负载告警,数据库与应用分离的全部内容,希望文章能够帮你解决单机负载告警,数据库与应用分离所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复