FreeDOSのイメージをPXEでブートする
2015年でもDOSを起動しなければならないことがあって、BIOSのアップデートとかBIOSのアップデートとかBIOSのアップデートなんだけど、2015年なのでフロッピードライブとか用意するのは簡単ではないし、何よりアップデート対象のマシンがデータセンターに置かれていたりすると、フロッピーをさすためだけにデータセンターに入館するのは正直しんどい。これはフロッピーがUSBフラッシュメモリーになっていたとしても同じだと思う。辛い。
そこでネットワークブートできないかなと色々試してみたらこれは行けそうみたいな方法を自分なりに確立したのでメモを残しておこうと思います。
技術的な話題が久しぶりな感じですが少々お付き合いください。
続きを読むC89 抽選漏れしました / 凛ちゃんハピば
C89、今年もサークル参加できれば引き続きひだまりPHPの新作とサーバ運用系のペラ本を作ろうと思っていたのですが、今回は残念ながら抽選漏れとなってしまいました。残念。
同人ソフトで申し込みを行ったのですが、同人ソフト枠は激戦区なんですねー・・・。
夏まで9ヶ月ほどあるので、本来冬に書こうと思っていたネタはこのブログで適当に消化したり、商業のWeb+DB PRESSのほうに書いていこうとおもいます。
続きを読むPHPのビルドにはgcc最適化オプションをつける
Linuxを使ってると、ディストリビューションパッケージのバージョンが古かったり、リンクされているライブラリがダメダメだったりして仕方なく自分でビルドするかーってなることがまあまああると思うのですが、何も考えずにビルドするだけではいい感じのバイナリが得られません。
これはPHPに限った話ではないのですが、長時間動かすサーバアプリケーションを自分でビルドするときにはgccの最適化オプションをつけるようにしないと、実行速度が遅くなったり、無駄にCPUを消費する時間が長くなってしまいもったいないです。
デフォルトでいい感じにビルドできればいいのですが、PHPの場合そういうことはなくgccの最適化オプションは自分でちゃんとつける必要があります。 オプションは環境変数、CFLAGSとCXXFLAGSを使って設定しconfigureスクリプトに渡します。
gccの最適化オプションは種類が多いのでとても複雑なオプションを指定しようみたいなことを書いているページもいくつかあるのですが、
複雑であまり効果のないオプションを指定する必要はないので、単に-O2
と-march=native
を指定するだけで良いと思います。
export CFLAGS="-O2 -march=native -pipe" export CXXFLAGS="${CFLAGS}" ./configure (色々ほかのオプション)
-march=native
はコンパイラに特定のCPU向けのコードを生成するように指示するオプション。
このを指定するとCPUの違いで動作しなくなることがあるかもしれないのでバイナリをコピーして使う時には注意が必要です。
ビルドしたマシンと異なるCPUが乗っているマシンにバイナリをコピーして使いたい場合は-march=native
外してビルドすれば良いでしょう。
-O2
はgccの最適化オプションでコンパイル時間がかかるようになり生成されるバイナリは少し大きくなるかもしれませんが、一般に実行速度が速くなるような最適化を実施します。-O2
はつけて害になることはまずないので特に動かす頻度の多いPHPのようなものではとりあえずつけておくのがよいでしょう。
ところで、実マシンの実行速度にどれくらい差が出るのかというと、平均で1割程度早くなります。コードによっては2割ほど早くなることもあるので、このあたりのオプションは必ずつけてビルドするようにしておくのがよいでしょう。
もう少し細かい話はGentooのwikiあたりを見るといいと思います。
参考
Sidekiqの様子もMuninに描いてほしいけどいい感じのプラグインがなかったので書いた
Sidekiqが仕事してるのか、暇なのか、エラーがあるのかないのか、キューが溜まっているのかはけているのか・・・。
Sidekiqには便利なAdminがついていて開いておけば統計情報をいい感じに表示してくれるのですが、
ブラウザを開きっぱにするわけにもいかないし、成功したジョブ数はどんどん増えていくので5分間でどれくらい処理されたのか、みたいな情報がわかりにくいです。
そこでmuninみたいな便利ツールにグラフを描いてもらおうと思ったのですが、sidekiq用のpluginないんですね。すぐ出てくるものだと思っていたので、世の中の厳しさを知りました。
厳しい世界を優しくするため、sidekiqのプラグインをさくっと書いてみることにしました。
どれくらい実行されているかみたいなのに関心があるので、ProcessedとFailedは差分で取るようにしていますがMuninの差分って普通に書くと秒間なんですね。
こうやって見る分には十分かなと思っているのですが、しばらく描いてみて微妙だったら調整するかもしれません。
スクフェスと10月近況
いつものと近況です。
続きを読む