怎样分析cpu利用率上不去的情况?

怎样分析cpu利用率上不去的情况?

参与8

3同行回答

longge0332longge0332系统架构师lanzhrailway
多开线程就上去了。显示全部

多开线程就上去了。

收起
IT其它 · 2016-12-27
浏览7364
yangjianxvyangjianxv部门总经理成方金融科技有限公司
CPU有两头怕1)怕CPU占用率高2)怕CPU占用率低重点解释一下为什么怕CPU低。有时候,业务压力冲上来了,但都被挡在外面,或者堆在队列了,而此时看CPU利用率却很低,也就是有CPU但没有用上。对于ETL来说,往往是晚上做,你这里着急明天早上8点开门,它却迟迟处理不完,CPU利用率很低,你着急不着...显示全部

CPU有两头怕

1)怕CPU占用率高

2)怕CPU占用率低

重点解释一下为什么怕CPU低。有时候,业务压力冲上来了,但都被挡在外面,或者堆在队列了,而此时看CPU利用率却很低,也就是有CPU但没有用上。对于ETL来说,往往是晚上做,你这里着急明天早上8点开门,它却迟迟处理不完,CPU利用率很低,你着急不着急?

这种情况有好多原因。

1)并发线程数太少。(这一点,楼上的同学也提到了)

并发数应该开多少呢? 假如 你的应用线程是全力干活的线程,没有什么sleep、等IO之类的事情,也就是说,一个线程可以把一个物理CPU thread吃的慢慢的。那么你的最大并发线程,可以设为略小于服务器的逻辑CPU数量。也就是CPU core * SMT。如果你是虚拟化powervm环境,逻辑CPU=VP*SMT,但虚拟化环境,需要额外注意,如果你要保持高性能,那么建议略小于EC*SMT即可。

2)虚拟化平台的参数配置有问题

比如,某个LPAR,EC=0.5,VP=5,那么很可能,压力来了之后,CPU利用率也上不去,报文严重堆积。因为大部分实际,多花在hypervisor的调度上,以及CPU的cache命中失败,去内存找数据取了。

关于这方面的原理,在我的文章中有提到

PowerVM虚拟化下的核心交易系统性能保持

性能指标之资源指标 CPU亲和性原理介绍及如何量化读数

3)其他各类参数限制导致应用能力被约束,尤其以数据库为甚。

比如应用连接Oracle数据库服务器的JDBC连接数太少,数据库的process太少等等,导致应用在等待数据库。如果单讲数据库的话,以Oracle为例,可以看看awr的top等待事件。

比如log switch等待时间长,就调整redo日志组数和日志大小

比如索引等待时间长,可以调整为索引分区

比如rego日志sync等待时间长,调整存储的能力。

收起
银行 · 2016-12-28
浏览7342
lsxlsx信息技术经理大唐控股
上不去不用紧张吧?你预估应用跑起来会造成很大压力吗?要是这样,看看是否是别的资源有瓶颈。显示全部

上不去不用紧张吧?你预估应用跑起来会造成很大压力吗?要是这样,看看是否是别的资源有瓶颈。

收起
保险 · 2016-12-27
浏览7222

提问者

黄建坤
信息技术经理泰康

问题来自

问题状态

  • 发布时间:2016-12-27
  • 关注会员:4 人
  • 问题浏览:10989
  • 最近回答:2016-12-28
  • X社区推广