性能调优实践-提升cpu利用率

1 结论

通过本次性能优化,总结了几条经验。

■频繁的加解锁会提高系统空间的CPU占用率

锁在内核的实现是通过队列来实现的,加锁操作把线程放入等待队列,解锁操作是才能够等待队列获取一个线程来获取锁。所以频繁的加解锁CPU的开销是非常大的。

■锁和线程的数量是两个矛盾体。

对于固定数量的锁,线程的数量并非越多越好。我们需要在两者之间找平衡点。如何来找?通过测试找出最优值。

■多CPU环境下的CPU瓶颈问题的定位

在多CPU环境中,如果某个CPU占用率接近100%,可以得出这样的结论,某个线程的粒度太大造成了CPU使用率不均衡,可以通过减小线程粒度来解决这个问题。

如果每个CPU的占用率远小于100%,不能得出CPU不是瓶颈的结论,本文就是一个典型的案例。当处理某个任务的线程数量不够,且线程有等待的操作(比如:加锁动作,sleep动作),等待的操作可以使得线程在各个CPU之间均衡的调度,从而使得我们看到各个CPU的占用率分布均衡并且比较低。这种性能问题只能通过结合应用代码来进行定位,在本文中通过观察队列的大小来的得出CPU是瓶颈的结论。这种问题的解决方案是增加线程数量。

2 问题的提出

PROCESSOR进程运行在12G内存,12个CPU的服务器上,性能运行参数如下:

 

CPU total%

CPU sy%

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值