柳澤です。

Hirosi Osumi wrote:
> AMD 64x2 CPU を購入し、FreeBSD/amd64 6.2-RELEASE をインストールしたのですが、
> すこし疑問に思うところがありまして投稿しました。
> 
> dmesg には以下のように CPU が二つ認識しているようですが
(snip)
> top コマンドを実行しても CPU 行が1行しか表示されません。

FreeBSDのtopコマンドはたとえSMPであったとしても、
昔(といっても、3.xの頃は知りませんが)からCPUは1行しか
表示されないようです。そして、すべてのCPUを最大で使うと
100%になるという表示の仕方のようです。各々を表示させる
方法はmanを読む限り見つかりませんでした。

なお、topをSMP環境で動かすとCというカラムが
追加されていて、各々のプロセスがどのCPUで実行中か
というのがわかります。


> また、CPU 使用率も dnetc/RC5-72 を実行しているので
> 使用率は 100% になるかと思ったのですが、50% で止まっていて
> 片方しか使っていないようです。
> dnetc のログを見ると2つ並行して動かしているように見えるのですが。。。
> [Mar 12 14:39:54 UTC] Automatic processor detection found 2 processors.
> [Mar 12 14:39:54 UTC] Loading crunchers with work...
> [Mar 12 14:39:54 UTC] Automatic processor type detection found
>                       an AMD K8-11 processor.
> [Mar 12 14:40:17 UTC] RC5-72: using core #1 (KBE-64 3-pipe).
> [Mar 12 14:40:17 UTC] RC5-72 #a: Loaded CB:7C3645AA:00000000:1*2^32 (31.50% 
> done)
> [Mar 12 14:40:17 UTC] RC5-72 #b: Loaded CB:7C3645A7:00000000:1*2^32 (31.50% 
> done)

using core #1とあるのでCPUを1つしか使ってないということは
ないんですかね。試しに、dnetcを自分も同じ環境のマシンで
動かして、ps -aHで見てみましたが1つしかdnetcが無いので、
1スレッドで動いていて、CPUを2つは使っていないようです。
この手の静的にリンクされたアプリケーションでは
KSEは使えないような気がするのですが...

CPU使用率を100%にするだけなら、無駄なループを回り続ける
shellスクリプトをCPUの個数分動かすという手段もありますよ。

# 質問の内容と関係ないですが、最後に一つだけ。
# 時計の設定なのですが、
# PCの時計はJSTなのに、OSの時計をGMTにしているように思います。
# 設定ミスというより、設定をしていないだけのように見えますが。

メールによる返信