首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

大话系统架构优化项目(2)

大话系统架构优化项目(2)

3.性能调优

3.1 常见性能问题

3.1.1常见客户端性能问题

    加载慢:第一次启动慢或者重新加载慢;

    无响应:事件出发后页面假死;

    受网络带宽影响严重:因为需要下载大量资源文件,在一些在网络环境不好的地区页面;

    JS内存溢出:频繁对对象的属性进行操作造成内存大量占用最终溢出。

3.1.2常见的J2EE 系统性能问题

    内存泄漏:在运行过程中内存不断被占用而不能被回收,内存使用率随时间或负载的增加呈线性增长,系统处理效率随着时间或并发的增加而下降,直至将分配给JVM 的内存用尽而宕机,或重启后系统短时间内可恢复正常。

    资源泄露:在将资源打开后未关闭或未成功关闭的问题。这些资源包括数据源连接,文件流等。当这些资源经常被打开而未能成功关闭,就会导致资源泄漏。数据连接泄漏就是常见的资源泄漏问题。

    过载:系统过度使用,超出系统所能承受的负荷。

    内部资源瓶颈:资源过度使用或分配不足引起资源瓶颈。

    线程阻塞、线程死锁:线程退回到无法完成的同步点造成通信阻塞。

    应用系统响应慢:由于应用本身或SQL不合理的问题,导致响应时间长。

    应用系统不稳定,时快时慢的现象发生。

    应用系统各种各样异常情况发生:有些是中间件服务器抛出的异常、有些是数据端抛出的异常。

3.1.3常见的数据库问题

    死锁:因为请求保持或者执行效率低不能及时释放导或因为循环等待致表死锁;

    IO繁忙:因为不良SQL或业务逻辑设计不合理导致大量IO等待;

    CPU使用率居高不下:高并发或缓存穿透导致数据库CPU居高不下或忽高忽低。

3.2 调优的具体工作

天下武功为快不破,首要的就是提高系统的响应时间(响应时间 = 服务处理时间 + 排队时间),如经典的响应时间曲线所示,我们要做的就是通过程序优化减少服务响应时间,通过提高系统的吞吐量减少系统的排队时间。

在阿里“救了八年火”的架构师,大话系统架构优化项目

响应时间曲线(摘自《Oracle性能预测》)

纵轴是响应时间。响应时间是服务时间和排队时间的总和。横轴是到达率。随着每单位时间进入系统事务数的递增,曲线随之向右滑动。随着到达率的继续增加,在某一时候,排队时间将陡然上升。当这种情况发生时,响应时间也将陡然上升,性能下降,而用户感到非常沮丧。
返回列表