ISUCON7 予選感想

ISUCON7にチーム「焼肉ジャンボチキン」で(自分は初)出場して17位でした。本戦出場は18位までだったので、ギリギリの予選通過でした。ichyoさんとnatsugiri君と参加しましたが、だいたい全部ichyoさんがやってました。この記事を公開するのは超恥ずかしいですが、感想書くまでがISUCONということで・・

レポジトリ https://github.com/krtx/isucon2017-production

スコア推移
f:id:krtx:20171023230259p:plain

ツールとか

言うほど使ってたわけではないですが・・

アプリはgitで管理、各自トピックブランチ上で実装してできたら本番でベンチマーク、よさそうだったらmasterにマージのわりと真面目な流れで進めていました。一応PRにしてレビューっぽく一瞬眺めたりしましたが、完全に無意味でした。また、ブランチとスコアの対応の管理が雑だったので、ベスト時どうしてたっけ?となる事態に陥っていました(どうやってリカバーしたかというと多分こうだっただろうという推察でやってた気がする)。

scrapboxは試しにと思って使ってみたのですが、記法に慣れないということで文句を言われました。そんなに悪くなかったですが、コードのハイライトができるわりにコードのコピペをすると全行の先頭に半角スペースが入るのが微妙だった。

(半)時系列でやったこと・記憶に残ってること

  • まさかの複数台構成で特に自動化もしてなかったので3台すべてにマニュアルで事前に用意していた手順をやる。1時間くらいかかる
    • 練習してないし複数台無理ではの空気になる
  • プロファイル見るとDBボトルネック、アイコン画像の読み出しで詰んでたので、早い段階でいちょうさんが画像のキャッシュをやる。やったことはhttp://dsas.blog.klab.org/archives/pixiv-isucon2016-5.htmlに書いてあったこと大体そのままだったと思う。これでスコアを取ってみると、結構いい感じだった気がする。1台でやっても2台でやってもスコアが大して変わらなかったので、なんやねんみたいな空気になる(画像の更新日時をあわせる処理はしてなかったので、多分2台でやったときキャッシュの効果はなかったはず)
  • いちょうさんがどこかのタイミングで何かのインデックスを貼る。早くなったっぽい
  • fetchおそすぎなので、なんとかしようとしてしまう(レギュレーションを読まないアホ)。頑張ってSQLを書くが、全く効果があがらず空振る
  • 実際は /icons へのアクセスが一番重かったのに、alp の出力になぜか /icons が含まれておらず、ボトルネックを勘違いしていたことに気付く。この辺でfetchを速くするのを諦める
  • fetchUnreadを雑にキャッシュしようとするが全くスコアに寄与しない。この辺でいちょうさんがhavereadを消す(後で再起動試験に落ちそうであることが分かったので直してた)。web1台、db1台の方針で決定する
  • ずっと使ってなかった方のwebホストを使うとなぜかスコアが跳ね上がる現象が発生。nginxか何かのキャッシュが悪さをしているのでは?と疑心暗鬼に陥り、/var/lib/nginx/proxyを消してみたりする。消すとスコアがあがったのでこれかなと思ったが、その後もスコアはぶれまくっていたので、気の所為
  • 突然mysqlが立ち上がらない問題が発生する。スロークエリログが9Gくらいに増えておりディスク容量がほとんどなかったせいであることが判明したので、ログを消す
  • もう何もできないので諸々パージしてベンチガチャをやる。21万点が出たところで止めて、終了。20分くらい残ってたと思う

感想

とにかくベンチを取るたびにスコアがぶれまくったのと監視対象が足りなかったことで改善の方針が全く立たずほとんど迷走してたのがつらい。後半何もできなかったし・・・。webを1台にしたのは予選通過を考えれば良かったと思う。あとは練習でhttp://dsas.blog.klab.org/archives/pixiv-isucon2016-1.htmlをなぞるのをやってたのが良かった。正直、なぜ予選通過したのか、という思い。練習で2016年の予選問題をやったときは結構できたので、やっぱりインフラ力が低すぎた。本戦は惨敗だけは避けるようにしたい。

反省

心構え系

  • レギュレーションを読む
    • アプリケーションの使われ方を考え、全部はやくすればいいというわけではないことを知る

インフラ系

  • 監視対象が足りなかった。少なくとも、ネットワークはどう考えても絶対必要・・・。あとディスク容量も
  • alpでなぜ/iconsが見れなかったのかを調べる。場合によっては別のツールを探す

知識系

今回特に駄目だったのは

かな・・

オペレーション系

  • ベンチマークのスコアは毎回消えるし、どの状態でどれくらいのスコアが出たかが分からなくなるので、スコアとサーバの状態の対応を保存しておいた方が良さそう。あと今あるバイナリがいつ作ったやつか分からんも発生したので、バイナリ名にコミットのハッシュをくっつけるとかした方が良いかもしれない(そのときはバイナリ自体のハッシュを見た)
  • 最初の環境設定の手順は自動化する

2016 良かったもの

☆は特によかったもの

☆ かえりの合図、まってた食卓、そこ、きっと、しおふる世界
境界性パーソナリティ障害

アルバム

Grouper - Dragging A Dead Deer Up A Hill
Cicada - Ocean
100% - ✦✧
soccer mommy - for young hearts
朝生愛 - カモミールのプール

Holly Waxwing - ♌ shy mimosa ♑
Hope Sandoval & The Warm Inventions - Day Disguise
☆ Bonglestar Galactabong - At Night

美術展

ポンピドューセンター傑作選
アルバレス・ブラボ写真展
オランダのモダン・デザイン リートフェルト/ブルーナ/ADO
リビングルーム2 ミシェル・ブラジー展
Stay - Charlotte Dumas

映画

ビフォア・サンセット
ヴァンダの部屋

2016今年買った良い/悪い物

良い

家(賃貸)

家賃高いけど会社から近くて良い。

ベッド

IKEAですごくシンプルなものを購入。マット・ふとんも含めて気に入っている。最初はすべてIKEAで家具揃えようとか田舎者みたいなことを思っていたが、わりと趣味ではなかったためシンプルなベッドだけ買って満足した。

棚、机、椅子

Amazon でアンセム?というシリーズのものを購入。椅子はもらいものを使っていたが結局揃えた。机はなるべく機能が少ないほうがよいと思う。引き出しは便利なので許容している。

モカエキスプレス(bialetti)

コーヒーの味わからないけど、淹れるのが楽しい。エスプレッソ(じゃないけど)のほうが汎用性高くていいとおもう。

カセットコンロ

モカエキスプレス用に購入したが、いろいろ使えて便利。備え付きはIHだけど火もあると良い。小さめのものなのでシンプルだしかわいい。

普通

MBP

マック飽きてきた。Linux の機運が高まってる。けど買い換えるのはあまりにももったいない。

冷蔵庫

場所とるから買いたくなかったんだけどそういうわけにもいかず購入。食べ物を保存できて便利ですね。

アイロン

アイロンかけるの楽しいけど時間かかってめんどくさい。

オイルウォーマー

アロマ用。匂い気分よくなるけど汚れがこびりつくのが・・・。

ハンガーラック

部屋干し用。部屋干しは天気気にせずに洗濯できていいんだけど部屋が狭くなるのがだめ。

引っ越し

捨てたもの

☆家具
ベッド 1200
マットレス 400
ふとん
机(120x55x115) 1200
椅子 400
本棚(42x29x87) 400
本棚(59x17x90) 400
服かけ 400
食器棚 800
鏡 400
じゅうたん 400

☆家電
扇風機 400
掃除機 400
プリンタ400
電子レンジ 400

自転車 800

☆大型家電
冷蔵庫
洗濯機

大形家電以外は京都市に廃棄を依頼(電話しただけ)で1万円弱?。冷蔵庫と洗濯機は近所の電気屋に回収してもらった。布団は気合で廃棄。

感想

  • 大きいものはほとんど廃棄し、残りのものは普通の宅配便で送ったので、そんなに費用はかからなかった
  • とはいえ捨てるのにも結構お金が必要だったので、そこまで変わらないかもしれない
  • 洗濯機とかは新しいものを買ったので、もし引っ越し費用が同じくらいだったら大体捨ててしまって買い換える方が良いのではないか

修論

修論の発表をしました。

スライド https://speakerdeck.com/krtx/ci-yuan-xing-niji-dukurupubu-bian-tiao-jian-zi-dong-sheng-cheng-synthesizing-loop-invariants-via-dimension-types

2015 best 10

良かったやつ

1. Headquarters / Anne Bacheley / 2008
2. 50,000,000 Elvis Fans Can't Be Wrong / caroline says / 2014
3. Islands / Ben Stepner / 2010
4. The Man Who Died In His Boar / Grouper / 2013
5. Bach: The 4 Lute Suites / John Williams / 2006
6. REDEFINING THE WORKPLACE / INTERNET CLUB / 2016
7. 神秘的情人 / 泰合志恒 / 2015
8. Body [Disc 1] + [Disc 2] / 木の反射 / 2015
9. 新しい日の誕生 / 2814 / 2015
10. Avondale Windows or: "Six Songs for Acoustic & Electric Guitar" / M. Sage / 2015

1. ヘタウマ 2. コーラスのレイヤーが良い 3. 緩慢なクラシック 4. 電車に乗りながら聴いた 5. すごくうまい 6. ノスタルジー 7. 似非桃源郷的音楽 8. 似非瞑想音楽 9. 未来 10. 開放感がある

その他

1. D'Ya Hear Me! : Naffi Years, 1979-83 / Brenda Ray (Naffi) / 2012
2. El Tren Fantasma / Chris Watson / 2011
3. The Conet Project / The Conet Project / 1997
4. Touched By an Angle / Crash Symbols / 2014
5. The Return Of The Durutti Column / The Durutti Column / 1980
6. ATMOSPHERES 第4 / ECO VIRTUAL / 2015
7. Deep Thoughts / Giant Claw / 2015
8. The Original Faces / Helen / 2015
9. Spiegel, Laurie: The Expanding Universe / Laurie Spiegel / 1977
10. Lui / Lui / 1978
11. Another One / Mac DeMarco / 2015
12. Valley Girl / Madalyn Merkey / 2014
13. Flammende Herzen / Michael Rother / 1977
14. Hindemith: Violin Concerto, Symphonic Metamorphosis, Konzertmusik / Midori; Christoph Eschenbach: NDR Symphony Orchestra Hamburg / 2013
15. Epitaph / Nico Niquo / 2015
16. Garden of Delete / Oneohtrix Point Never / 2015
17. Stuff Like That There / Yo La Tengo / 2015
18. ニュー餅太郎 / にゃにゃんがプー / 2015
19. CHAM! / マクロスMACROSS 82-99 / 2015
20. PEARL PIERCE / 松任谷由実 / 1982
21. 卒業と、それまでのうとうと / 泉まくら /2012
22. のんのん日和 / V.A. / 2013

1. 奇矯 2. 記録映画っぽい 3. Internet Archive で適当に探して入手すると感動が2倍になる 4. 16曲目がプラスチック白昼夢という感じで良かった 5. 発売当時に聴いてたら衝撃だったと思う(えらそう) 6. シリーズ完結(?) 7. ちょっとだけ聴いてわけわかんなかったけど最近また聴いたら意外にいいかもしれないと思った 8. 期待が先行してしまったかもしれんけどこれも今聴いたらベースがアホっぽくていい感じだ 9. 名盤然としている 10. ジャケが良い 11. のんびりしてて良いと思う 12. Scent は良かったんだけどなんかあんまり聴かなかった 13. 燃える心 14. 五嶋みどりがテレビに出てて買ったような記憶がある 15. 1曲目だけ 16. なんかあんまり聴いてない 17. ファンサービス(ファンなのでめっちゃ聴いた)18. なにこれ 19. まあまあ 20. グレイのしみになるぅ 21. うとうと 22. のんのん

愛宕山

愛宕山に登りました

清滝のバス停についたのが9時過ぎ、そこから登山口まで10分くらい? 登山スタイルの人が多くてビビってました。

f:id:krtx:20151101092605j:plain
(9:26) 道の途中にこういう立て札があって、今どれくらいの位置まで来たかを教えてくれる。主に防火を喚起する文言が書かれている。面白かったので写真に撮った分だけ下に列挙。

(09:26) 3/40 山頂でくわえタバコダメ
(09:44) 10/40 火の用心 嵯峨消防分団
(09:53) 13/40 「来たれ嵯峨分団へ」ただいま消防団員募集中
(10:02) 16/40 そこはダメ!! そこはダメなの アブないわ 嵯峨分団河

f:id:krtx:20151101101036j:plain
(10:10) 三十丁目の休息所がこの辺

f:id:krtx:20151101101320j:plain
(10:13) 見晴らしがよい

(10:14) 20/40 火事と救急119ばん!! 嵯峨消防分団
(10:16) 21/40 我家は今年も無災害 嵯峨消防分団 100メートル先の左側の大木にミツバチ注意!! (100メートル〜の文字は黒いマジックで比較的新しく書かれていた)
(10:17) 22/40 すぐ右下の大木のミツバチ注意 嵯峨分団 2015.7/20 (他の立て札は白いペンキで書かれていたがこれは黒いマジックだった。21 と同じ時期に作ったものだろう。ちなみにミツバチはもう見当たらなかった)

f:id:krtx:20151101101830j:plain
(10:18) フォントがよい

(10:20) 23/40 火遊びはヤ・メ・テ♡ 上 嵯峨消防分団
(10:25) 26/40 火をつけた あなたの責任最後まで
(10:27) 27/40 「おのぼりやす」「お下りやす」交わす挨拶火の用心 嵯峨消防分団
(10:32) 29/40 町ぐるみ職場ぐるみで防火のそなえ 嵯峨消防分団

f:id:krtx:20151101103552j:plain
水尾の別れがこの辺

(10:37) 31/40 疲れてる!あなたの足元要注意 嵯峨消防分団
(10:40) 32/40 駆け抜けろ!! 俺のアドレナリン! 嵯峨消防分団 細
(10:41) 33/40 あなたの注意が山火事守る 嵯峨消防分団
(10:43) 34/40 山林防火で豊かな自然×× 嵯峨消防分団 (××のところが写真では枝に隠れて読めない)
(10:49) 36/40 山林防火で豊かな自然環境を!! 嵯峨消防分団
(10:54) 38/40 山を愛するハイカーに火事はなし

f:id:krtx:20151101105948j:plain
(10:59) 40/40 おつかれ さまでした 神社マデ300米

これで終わりかとおもいきや

f:id:krtx:20151101110113j:plain
(11:01) 41/40 火迺要慎 嵯峨消防分団

ここから神社の本殿?まで最後の石段を登って10分くらい。火迺要慎の札(小, 400円)を買いました。

f:id:krtx:20151101113100j:plain
(11:31) 帰りは月輪寺を経由するルートを通った

f:id:krtx:20151101113153j:plain
(11:31) 結構晴れてた

f:id:krtx:20151101120818j:plain
(12:08) 帰りにも行きと同じように目印となる標識があったが、色気のない感じであまりおもしろくない

f:id:krtx:20151101124512j:plain
(12:45) 終了〜、でもここからバス停まで長い

帰りに半分走ってるみたいに歩いたら翌日全身筋肉痛になった。バス亭についたのが 13:30 ちょっと前で、あわせて4時間半でした。もうちょっとすっきり晴れてたらよかったな〜