2017年6月4日:【OGR-28】Japan Celeron Users Groupさんを抜きました
6月2日に、Final Tear ZチームはJapan Celeron Users GroupさんをOGR-28で抜くことができました。2016年11月16日に抜かれたのですが、約半年で抜き返すことができました。わいわい。それにしても、もう。Japan Celeron Users Groupさんとの付き合いも随分と長くなりまして、もう10数年にもなりますかね。これからもお互い頑張りましょう!(と勝手にまとめる
ちなみに、6月2日時点ではFinal Tear Zは12,022,345 Gnodesを解析済みでした。世界順位は131位です。半年前は136位でしたから、JCUGさんもFTZもちょっとだけ順位をあげてきてますね。
一方、プロジェクト全体は6月3日時点で42,276,453,836 Gnodesが解析済み。全体に対しては35.48%です。プロジェクト開始からの経過はちょうど1200日。三年とちょっと経ったわけですね。単純計算ではあと6年ほどで完了する見込みということになります。意外と早く終わりそうですね。
2017年6月20日:dnetcが1CPUで動いてた
dnetcを動かしているPC達を運用監視したらどうかなと思い立ちまして、はてなの提供するMackerelを使ってみました。これ、最近評判いいですよね。
で、早速エージェントをダウンロードしてきてPC達にインストールして監視してみたんですが、FreeBSDで動いてるサーバ機のCPU稼働率が50%しかないということに気がつきました。は?topコマンドで観察したらちゃんと100%になってるのに。
last pid: 78486; load averages: 1.19, 1.21, 1.38 up 40+00:12:58 22:21:12 45 processes: 2 running, 43 sleeping CPU: 0.0% user, 50.0% nice, 0.0% system, 0.0% interrupt, 50.0% idle Mem: 45M Active, 7976K Inact, 270M Wired, 10M Cache, 405M Buf, 3493M Free Swap: 3852M Total, 462M Used, 3390M Free, 11% Inuse PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 78358 shigekazu 1 123 20 11400K 8252K CPU0 0 18:12 100.00% dnetc
このPCは2コアなので、おそらく1コアしか使わないようになってしまっているのでしょう。topコマンドに-Pオプションを付けてみたところ、確かにそうなってました。
last pid: 78489; load averages: 1.14, 1.19, 1.38 up 40+00:13:13 22:21:27 45 processes: 2 running, 43 sleeping CPU 0: 0.0% user, 14.5% nice, 0.0% system, 0.0% interrupt, 85.5% idle CPU 1: 0.0% user, 85.5% nice, 0.0% system, 0.0% interrupt, 14.5% idle Mem: 45M Active, 8008K Inact, 270M Wired, 10M Cache, 12M Buf, 3493M Free Swap: 3852M Total, 462M Used, 3390M Free, 11% Inuse PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 78358 shigekazu 1 123 20 11400K 8252K CPU0 0 18:28 99.85% dnetc
まずは疑うのはdnetcの設定です。コア数はauto detectになっていたのですが手動で2コアを明示してdnetcを再起動。が、やっぱり1コア分しか使われない。dnetcのログを見てる限りはちゃんと2スレッド起動してるんですけどねぇ。
しばらく考えて、なんとなくfileコマンドでdnetcを調べてみたところ
$ file dnetc dnetc: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 8.2, stripped
こんなことになってました。使用してるOSはFreeBSD 10.3ですので、全然バージョンが合ってないですね。それが原因とも思いにくいのですが、念のためにdistributed.net Client DownloadsからFreeBSD 10.x/AMD64用のdnetcをダウンロードしてきたところ、無事に2コアが使われるようになりました。
last pid: 78198; load averages: 2.00, 2.00, 2.00 up 39+23:42:13 21:50:27 43 processes: 3 running, 40 sleeping CPU 0: 0.0% user, 100% nice, 0.0% system, 0.0% interrupt, 0.0% idle CPU 1: 0.0% user, 100% nice, 0.0% system, 0.0% interrupt, 0.0% idle Mem: 18M Active, 3323M Inact, 348M Wired, 51M Cache, 404M Buf, 85M Free Swap: 3852M Total, 16M Used, 3836M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 33727 root 1 123 20 14800K 4852K RUN 0 93.0H 100.00% dnetc 33728 root 1 123 20 14800K 4712K CPU1 1 93.0H 100.00% dnetc
うーん、なんなんでしょうね。FreeBSD 8.xから10.xの間でマルチスレッドに関するAPIの変更でもあったんでしょうか。まさかなぁとは思いますが、自分にとっての問題は解決したのでとりあえずよしとします。
あー、それにしてもこれまで数ヶ月間ずっと1コア遊んでたってのはもったいないなぁ。悔しい。