nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

Fedora 18 on ThinkPad X1 CarbonでCPUが常に遅い

おうちではThinkPad X1 CarbonというUltra Bookを使ってる。MacBook Airみたいなやつだけど、MacBook Airと両方持ってる人曰く、X1 Carbonのほうがハードウェア面では快適らしい。

さて、これにFedora 18を入れたんだけど、ちょっと動作がもっさりしている。まぁCPUが超低電圧版で低クロックなので、こんなもんかなー、と思ったりしていたんだけど、そこそこな負荷の作業をしていても一向にハードウェアスペックの上限にたどりついていない感がしたのでちょっと調べてみた。

cat /proc/cpuinfo
model name	: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz
cpu MHz		: 800.000

アイドル時のクロックは800MHzのようだ。

そして、画像処理とか適当なCPU負荷をかけながらモニタしてみても、800から変わる気配がない。なにかおかしい。

cpupowerで見てみる。

sudo yum install -y kernel-tools
sudo cpupower frequency-info

出力は期待どおり0.8GHzから1.8GHzとなっている。ただスケーリングができていない雰囲気。というかバッテリーで動作してるときにfreqがMINまで落とされている、というのは理解できるんだけど、そもそもACパワーつないでいてバッテリー駆動していないときってMAXのまま動作するんじゃなかったっけ?

とりあえずバッテリーをケチらなきゃいけないユースケースもほとんどないので1.8GHz固定にする。

[/etc/sysconfig/cpupower]
# See 'cpupower help' and cpupower(1) for more info
#CPUPOWER_START_OPTS="frequency-set -g performance"
CPUPOWER_START_OPTS="frequency-set -d 1.8GHz"
CPUPOWER_STOP_OPTS="frequency-set -g ondeman
sudo systemctl enable cpupower.service

800MHzのときでJBoss AS7の起動が7秒とかかかってたのが、1.8GHzに固定した後だと3秒くらいになった。

調べてみるとこのへん Bug 772649 - Frequency not scaling on demand - Sandy Bridge が関係してるのかもしれない。これはSpeedStepbios_limitの問題らしいけど、bios_limit確認したら1.8GHzになっていたのでこの現象とは別か。と思ったら、BIOSSpeedStepをDisabledにしたらfreqが2200とかに見えるようになったんだけどまた遅い(たぶん800)という謎現象。SpeedStepまわりの何かなのかな。とりあえず当面の問題は解決したので深追いするのは後回し。