注意linux 2.6.32内核高精度定时器带来的cpu sy暴涨的“问题

注意linux 2.6.32内核高精度定时器带来的cpu sy暴涨的“问题,根据
http://hellojava.info/?m=201307所说的:

linux在2.6.32内核以后支持了高精度的调度,在.32以前的内核里,即使你在java里写queue.await(1ns)之类的代码,其实都是需要1ms左右才会执行的,但.32以后则可以支持ns级的调度,对于实时性要求非常非常高的性能而言,这本来是个好特性。

但不幸的是很多人在写代码的时候其实压根就没有要ns级调度的需求,纯粹只是随便写了一个类似10ns唤醒的策略,这个在内核升级到.32后就悲催了,直接就会看到cpu sy猛增,很容易以为是内核的bug,话说其实这可以认为是程序本身的bug。

在linux上可通过cat /proc/timer_list | grep .resolution来查看调度器的精度。

可通过修改/boot/grub/grub.conf,在相应的kernel行的最后增加highres=off nohz=off来关闭高精度(不建议这样做,最好还是程序本身做相应的修改)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值