希望认识做性能测试的朋友,共同学习提高。

性能优化从细节做起

上一篇 / 下一篇  2008-12-25 10:07:48 / 个人分类:性能测试

近期在测一个金融单位的业务系统,在第一轮和第二轮压力测试中发现,当并发用户在50左右时,数据库的活动会话最大也就4个,该系统的中间件是WEBLOGIC,因为该系统是自己开发的数据库连接池,所以WEBLOGIC监控不到数据库连接池的状态,所有的压力都集中在WEBLOGIC,而数据库压力很小。经过与开发人员讨论后,他们进行了程序修改,在第三轮测试的时候发现压力达到100并发用户时,数据库CPU的占用率达到97%以上,并且发现库缓存未命中率(libcache miss hit radio)在4%左右,这说明数据库的硬解析较多,通过对数据库进行分析,发现有一条SQL语句是select max(id) from table1 where ...。发现该表数据量增速较快,ID字段是自增并且是主键,把SQL语句改了一下,改为 order by ID ,取第一条记录,速度快了一倍多,CPU的使用也下来了。因为MAX函数是一个比较函数,在数据量很大时,比较非常占用CPU资源,并且使用这个函数,索引也起不到作用,而利用ORDER BY 语句,索引很快就可以定位到最大的ID,速度也非常快。细节决定成败啊,做性能测试一定要认真分析,从细节入手。

 

注:刚学习LINUX对该系统不是太熟悉,刚学一招  实际使用内存=总内存-FREE-CACHE-BUFFER.


TAG: 性能测试

墨点黑了白纸 引用 删除 dian7669285   /   2015-01-06 17:21:30
1
 

评分:0

我来说两句

我的栏目

日历

« 2023-01-08  
1234567
891011121314
15161718192021
22232425262728
293031    

数据统计

  • 访问量: 9039
  • 日志数: 17
  • 建立时间: 2008-06-30
  • 更新时间: 2010-03-04

RSS订阅

Open Toolbar