isucon4の予選に参加してみた

名前は聞いたことあったのでどんなもんかと思い参加してみた。本当は同僚と参加しようと思っていたのだが同僚が捕まらず一人で参加することに。まあ予選通過できなくても一人だしー不利だしーとか言ってればプライドが守れるしそんなに悪くないのかも。俺も成長したのか精神をコントロールする術を身につけた。

言語は普段使ってるRubyにする。

前日

  • AWSよくわかってないのでisucon3のAMIを起動したりDB接続したりして操作方法を調べる。
  • 一人しかいないのでソースをvimで直接編集することにし、dotfilesをcloneしてvim起動してプラグインインストールしたら久しぶりのプラグインアップデートでいくつか機能が動かず.vimrcを修正
  • 細かくプロファイルとってる時間ないと思うし、取るスキルもないのでざっくり遅いところを確認するためNew Relicとrack-mini-profilerのセットアップ方法を確認
  • Sinatraいじったことないので少し仕様を確認。シンプルですね。

明日に備えて0時就寝

当日

8:30に起床。近所のエクセルシオールでアイスカフェラテとビッグハムサンドを食って気合を入れる。 予選突破したら同僚に自慢しようとか考える。

10時

とりあえず環境セットアップ。EBS Availableの意味がわからずちょっと時間を無駄にする

11時

ざっとルーティングやらDBやらを確認。シンプルですね。初期スコアは1500くらい。

ぱっとみたかんじデータを全部メモリに載せれば早そうだけど、再起動時とかを考えるとちょっとあぶないのと、一人なので時間がたりなさそう。普通のチューニングをすることにする。普通にやってもまあまあ早くなりそう。

とりあえずIPでのbanとログインアカウントごとのlockがあるのだが、これらをlogin_logというテーブルから毎度毎度集計していて重そうなのでlogin_logにトリガ作って新しく作った集計テーブルとusersテーブルにon duplicate insert(update?)する。

これでlogin_logのselectはなくなる。トリガは通常のアプリだと複雑になりがちなのでこれまで使わなかったため、人生初のトリガになった。けどこれくらいシンプルなアプリならトリガでも問題ないだろ、という希望的観測。トリガそのもののパフォーマンスが悪いと死ぬけどまあ~大丈夫・・・だろ。

12時

ban判定からlogin_logへの参照を削除 スコアは2000台

13時

lock判定からlogin_logへの参照を削除 スコアは2000台 少しインデックスを調整するがそんなに早くなりそうもないので少しにしておく

14時

mypageで参照してるデータを全部login時にsessionに入れてmypageでdb読まないようにする。 スコアは3000前後であんまり上がってない。もう1万超えているチームもいて焦る

DBアクセス周りは大体こんなもんで、そろそろ静的ファイルをunicornからnginxにしようかな・・・と調べるとログインページとエラーページが全部静的ファイルにできそうなのでレギュレーションを確認。URLは変更してはいけないようだがquery stringは対象外らしくベンチでもfailしなかったので、ログイン失敗時にquery stringを付与し、nginxで判定して静的ファイルにマッピングすることにする

15時

nginxの設定にドはまり

16時

nginxの設定にドはまり(´;ω;`)ウッ…もうダメp

すごい絶望的な気分になるがこの設定を成功させないとこれ以上スコアを伸ばすのは難しい。

なんとか終わらせたが2時間くらいかかってしまった。

スコアは11000くらいで上がったが上位との差は埋まらない。

17時

もう時間もなくなってきたのでNew Relicとrack-mini-profilerをはずす。スコアは15000台

パスワードハッシュの計算をRubyからMysqlに移してみたがあんまり変化なし。

init.shにmysqlのウォームアップを入れるもそんなに変化なし。

my.confも少しいじる

しかし全然サーバに負荷かからねーな・・・やっぱメモリに全部載せるべきだったのかなーなどと考える

18時

タイムアップ!結局スコアは15000台で予選通過は5万前後かな?

はぁ〜俺って大したことないのかなー・・・意味ねえけどAMI提出すっか・・・辛い・・・同僚に自慢できない・・・

ここでworkloadというパラメータの存在に気づく

ためしにworkloadを設定してみるとポートが足りないエラーが出るので使えるポートを増やすのとリサイクル設定を入れる

workloadを20くらいにしたら38000くらいになった。(´;ω;`)ウッ… まあでもどうせ予選は通過できませんʕº̫͡ºʔ isuconは一人だと難しいと聞いていたが単純に時間が足りないので本当なんだということがわかった。 ログ出力消したりnginxとunicornのパラメータ詰めたりしたらもうちょい上がりそうだけど時間が足りない。

感想

  • いろいろあったが楽しかった。
  • NewRelicは良い。

反省

  • サーバまわりのスキルの無さを痛感
  • 知り合いをもっと作ろう

はてなの近藤さんの自転車が盗まれたらしい(自転車の盗難対策について)

自転車の盗難にあいました - jkondoのはてなブログ
近藤さんの自転車はフランスのLOOKというメーカーのロードバイクで、購入時点では50万程度というスポーツバイクの中でも高級車の部類に入る。パーツも変更しているようなので100万くらいはいっているのじゃないだろうか。このクラスのロードバイクを盗まれたらショックは相当のものだろう。思い入れもあり、近藤さんも落ち込んだつぶやきを残している。

盗難届け出しに来たけど車体番号分からずまた明日。力が出ない Thu Sep 2 21:19:49 2010 via Echofon

自転車盗んでるやつは車裂きの刑で処刑したい。
それはそうとして通常高級ロードバイクを外の駐輪場に置くとかなり高い割合で盗まれると言われている。駐輪場は自転車泥棒にとっての狩場であり、またいつも同じ場所に置くことになるので狙われやすくなってしまうのだ。盗まれたのが近藤さんの自転車だけとのことなので、犯人は自転車の価値がわかるブロの自転車泥棒だと思う。
自転車の保管は自転車通勤をするにあたっての最も大きな問題で、ロードバイクで通勤をしようとすると壁に当たるひとが多いと思う。近藤さんも最初は会社に置こうとしたようだ。

京都オフィスでは最初オフィスの中に入れさせてもらえないかと大家さんにお願いをしていたのですがちょっと難しいという事になり、少し不安を抱きながらも屋外の会社で契約している駐輪場の柱にワイヤー錠でつないで駐輪していました。

ワイヤー錠がどのようなものかは分からないが、ワイヤー錠は自転車泥棒にとって最も楽な部類の鍵で、5〜10秒もあれば切断されてしまう。存在しないのと同様の扱いだろう。

J&C Wire Lock JC-020W ブラック

J&C Wire Lock JC-020W ブラック

次によくあるのがU字ロックで、いかにも強力そうだけどこれもすぐに破壊されてしまう。よくピスト系の人がたすきがけにしている太めのチェーンロックなんかも防犯効果は似たようなもの。重いのにね。
斉工舎(SAIKO) スチールチェーンロック SAIKO CML-1500 206175003

斉工舎(SAIKO) スチールチェーンロック SAIKO CML-1500 206175003

以下の動画でガンガン破壊しているところが見れる。

ガンガン破壊してますね!ちなみに使ってる破壊器具は数千円で買えます。どれも破壊まで1分かかってない。
基本的には鍵による盗難防止は無意味とは言わないけど気休めや中高生避けだと思ったほうがいい。慣れた泥棒には無意味です。防犯対策としては保管場所に気を使うのが良いと思う。
保管場所としては近藤さんも最初に検討している通り、オフィス内の目の届く場所がベストだと思う。ただ、オフィス内に自転車を置かせてもらえる会社は少ない。僕が今いる会社でも交渉したけど置けませんでした・・・ただ、他にも手段は幾つかあるとおもう。

  • 袋に入れて会社に持ち込む

電車なんかに自転車を持ち込むための輪行袋に自転車を入れて「これは手荷物、手荷物なんですよ!?」という言い訳をすることでオフィス内に自転車を持ち込む。ちょっと目立つのだけど、はてな本社だったら出来たんじゃないかな?毎回の分解などが少し面倒だけど、愛車を守るには仕方ない。でもはてな社員みんなが同じことやったとして置き場所あったのかな・・・ロード率高いとなるとエライ人だけ場所を確保とか難しそうだ。

  • 専用駐輪場を借りる

最近は少ないながらも何件か高級自転車用の駐輪場が出来ていて、有人の管理人による防犯とあわせてシャワールームやロッカーなんかも併設されている。

http://www.xedap.co.jp/
ただし件数が少ないので会社から遠くなる可能性が高いのと、契約料金も通常の通臨場よりお高めなので、ここに止められる人は少ない。

専用駐輪場よりは数が多いのでトランクルームを借りるという手段をとっている人もいる。荷物も置けるので、会社の近くに手頃なトランクルームがある場合は検討する価値はあると思う。

  • コインロッカーに入れる(折りたたみ自転車のみ)

高級折り畳み自転車に乗っている場合はコインロッカーに入れてしまうという技もアリなんじゃなかろうか?ただし月極契約のコインロッカーがないと難しいかもしれない。

  • 通勤用の自転車を買う

盗まれても被害が少ないママチャリやクロスバイクなんかで通勤している人もいる。通勤なら高級自転車の性能は必要ないし、そこそこのクロスバイクなら十分快適に走れるだろう。
[asin:B003307DZO:detail]
以下3行でまとめ

  • 一般の駐輪場は有人管理でも狙われやすく危険!
  • 鍵は気休め!
  • 通勤したい場合は盗まれても被害が少ない自転車(VIPPER認定クロスバイクのEscape R3とか)か安全な屋内に保管するかどちらか!

気になったので近藤さんの日記のブクマコメを抜粋

清志郎さんのもみんなでワアワア言っているうちに見つかったような気が。。。

オレンジ号は高級部品を抜き取られて新宿一丁目に捨てられていました。処分しにくいオーダーフレームでなければそのまま売られていたでしょう。自転車はフレーム以外の殆どの部品がバラして転売できるので・・・

自転車ってナンバーとかないから盗難時の捜索難しいんだよね……せめて駐輪場にゴツいチェーン鍵でも用意しておけば。

駐輪場は構造上フレームに鍵を通すことが難しく、どうしてもホイールにロックすることになります。

ロードバイク買った


スペシャライズドのアレーです。コンボは旧105装備。最初はSORAにしとこうかと思ったけど、折りたたみ自転車より安いロードバイク買うのもなんだなと思って105装備のにしといた。趣味程度ならこれ以上コンボをアップグレードする必要もないし丁度いいかなというのも。
やっぱり走りは小径と比べて圧倒的に速くて(当たり前だけど)爽快感が違います・・・!
走ってると首がいたくなるけど、しばらくこいつでいろんなところ走ってみようと思う。

リビングに釣ってみたけど存在感がすごい。

ロードバイク買うぞ!

友人が突然「自転車で街を駆け抜けようぜ!ロックンロール!」と言うので前から興味があったロードバイクを買うことにした。友人は資金的な問題でクロスバイクを考えているらしいが、一緒に走ることを考えるとなんとかロードを買うように説得しなければならない。あとで考えよう。
フジロック終わったらロード買おうと思っているのだが、ロードってどんなんだろ〜と思ったのであんまり近くない自転車屋に行ってみた。やたらと元気な兄ちゃんが「入門ならここらへんっすね〜」とおすすめしてくれたのは
Bianchi ViaNirone7 Aluと

Pinarello FP1と

Orbea Aquaの3台。

あとCannondaleとかあったけど紹介に兄ちゃんの気合が入っていたのはこの3台だった。
正直違いがわからない(スペックが違うのはわかるが・・・)ので、適当にデザインで選ぼうかな・・・

Bromptonのフロントにある反射板をはずしてかしこいランプを取り付ける

Knogのバッグを取り付けることにしたのでハンドルバーに付けていたライトが使えなくなってしまい、別の場所にライトを取り付けることにした。

ママチャリの前カゴに取り付けるタイプのライトを買ってみた。



フロントの反射板の位置に取り付けようかと思う。



反射板を外して・・・

サクっと



取り付けたライトを後ろから見た絵。プラ板とライトが金具を挟む形になります。



取り付けOK!



フロントキャリアブロックと干渉しないことを確認。



暗闇で点灯テスト。


Bromptonなら砲弾型ライトとかの方が似合いそうだけど、感覚的にママチャリの仲間なのでこれでいいかな。
心配なのがライトはプラスチックの板で反射板のついていた金具を挟んでいるだけなので、若干外れる心配がある。
あと、このライトは面倒くさいライトで、電池交換のために3本のネジを外す必要がある。明るさは申し分ないんだけど・・・

BromptonのフロントバッグとしてKnogのThe Leading Dogをつけてみる その2

前回衝動買いしたKnogのThe Leading Dogだが、折りたたみ時にアタッチメントが鑑賞するという問題があった。


そこでこんなのを取り付けてみる。Bromptonのオプションパーツ、クロスバーです。
本来はハンドルの剛性UP用らしい。



クロスバーにアタッチメントを付ける。



クロスバーにバッグを装着してみた。
ちょっと重心が高いかな・・・?走ってみないとわからないけど、このくらいのサイズのバッグなら大して重いもの入らないので、あまり変わらないのではないか。



この状態でも折りたたみ時に干渉するのは変わらないのだけど、ハンドルバーと違ってクロスバーにアタッチメントをつけると、アタッチメントを回転させることができるので、こいつを上向きにすることができるのだ。



あらよっと



折りたたんでも干渉しないよ!!


これでようやくBromptonでまともに使えるようになった。デザイン的に悪くないのでこのバッグを選択肢に入れてもいいかも?日本で売ってるのは高すぎるので、おなじみwiggleだと6千円位で売ってる。
ハンドルバーにつけてたライトがつけられなくなったので、フロントの反射板のあたりにライトをつけようかと思案中・・・

BromptonのフロントバッグとしてKnogのThe Leading Dogをつけてみる

何となく衝動買いしたKnogのThe Leading DogをBromptonに装着して見ることにした。

付属のアタッチメントをハンドルバーにつけることでバッグを取り付けることが出来る。






なぜかワイヤーがついてるのだが、これはなんのためにあるのだろうか。
持ち運び用?


バッグ側のコネクタにはカバーがついているため、
ショルダーバッグとしての日常使いにも問題はないっぽい。


開けたらお姉さんが出迎えてくれた。
「ハァイ、ちょっと寄ってかない?」


Bromptonに取り付け。


折りたたむのはさすがに無理がある。




アタッチメントが干渉してしまうため、つけっぱなしで折りたたむのは不可能。
これだと毎日折り畳む人には厳しいんじゃないかなー。


仕方が無いので内側につけてみる。


折りたたみも行けるで!
中身はグチャグチャになると思う。



実走はしていないけど、たぶん内側に取り付けると立ちこぎがしづらくなるんじゃないだろうか?
サドルバッグとしてつけられるアタッチメントがあると便利なんじゃなかろうか。