`
yangshen998
  • 浏览: 1247241 次
文章分类
社区版块
存档分类
最新评论

书摘-可伸缩性-垂直伸缩

 
阅读更多

支撑高访问量

WEB应用随着访问量的增长,通常其瓶颈会出现在CPU或内存上,网络IO或磁盘IO出现瓶颈的几率较低!

增加CPU后:

要做到增加CPU后系统的服务能力线性增长,要求系统能够随着CPU的增加,响应速度提升或同时可用于处理请求的线程增加,主要下面三种情况,增加CPU后系统的服务能力无法线性增长

1、锁竞争激烈

锁竞争激烈造成很多线程都在等待锁,此时即使增加CPU,却无法让线程得到更快的处理!

2、用于支撑并发请求的线程数是固定的

java应用中,依靠多个线程来支撑高并发量,如启动的线程数是固定的,那么即使CPU增加了,系统的服务能力也不会提升!

3、单线程任务

增加CPU不会带来任何的提升


增加内存后:

增加能存后,主要有如下两种情况增加内存后无法是系统服务线性增长

1、cache的集合大小是固定的

系统通常会通过增加cache来提升性能,而为了避免资源消耗过多,多会限制cache的集合大小,如这个大小是固定的,增加能存无法起到应有的作用。

2、JVM堆内存是固定的

JVM堆通常是在启动参数中设定的,而过增加内存不调整JVM堆大小,增加能存后,系统的服务能力提升无法提升

支撑大数据量

数据量增加到一定程度后,数据库的读写速度大幅度下降,除了数据库软件本身要做到在CPU、磁盘或内存增加后提升响应速度外,从数据库本身也可以做一些优化,主要优化手段是分表。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics