Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ISUCONのススメ

 ISUCONのススメ

builderscon tokyo 2019 LT 登壇資料
https://builderscon.io/tokyo/2019

yamamoto-hiroya

August 31, 2019
Tweet

More Decks by yamamoto-hiroya

Other Decks in Technology

Transcript

  1. ISUCONのススメ
    Hamee株式会社 山本紘也
    twitter @HiroyaYamamoto1

    View Slide

  2. Hameeでは
    エンジニアを
    募集しております!
    ● Hameeはbuiderscon tokyo2019の同時通訳スポンサーをしております
    ● 転職をお考えの方は是非気軽に話しかけてください(選考が有利になる
    チケットがあるとかないとか…)

    View Slide

  3. 目次
    ● ISUCONとは
    ● 参戦履歴
    ● 学び
    ● まとめ

    View Slide

  4. ISUCONとは
    http://isucon.net/
    WEBサービスのチューニングのうまさを点数化して全国で競い合うコンテスト
    名前は「いい感じにスピードアップコンテスト」(Iikanjini Speed Up Contest)の
    略。
    毎年10月前後に開催していて今年で9回目
    予選と本選があり、予選上位数チームが本選出場

    View Slide

  5. きっかけ
    2015/08に会社のインフラエンジニアの社内発表にて存在をする
    当時エンジニア2年目だった私はどこまでやれるのか試してみたいと思い参
    加表明
    優勝賞金100万円に目がくらむ

    View Slide

  6. 参戦履歴1
    ● 2015/09 ISUCON5
    ○ バナナマンズ
    ○ 予選落ち(T_T)
    ● 2016/09 ISUCON6
    ○ バナナマンリターンズ
    ○ 予選落ち。・゚゚・(>_<;)・゚゚・。
    ● 2017/10 ISUCON7
    ○ バナナマンさん
    ○ 予選落ち༼;´༎ຶ ۝ ༎ຶ༽

    View Slide

  7. 参戦履歴2
    ● 2018/09 ISUCON8
    ○ バナナマンズ -4thの覚醒-
    ○ 予選落ち。。。
    ○ ただし528チーム中64位と大健闘
    ● 2019/09 ISUCON9
    ○ BANANINE
    ○ comming soon

    View Slide

  8. ISUCON5
    ● SNSっぽいサービス
    ● 画面数・テーブル数が多く、ボトルネックを探すところから
    ● 2年目エンジニアはsshした先のサーバで色んな操作をするだけで一苦
    労、時間がかかった
    ● 結果: 65点→1864点
    ● 何の成果も得られませんでした!
    ● お祭りに参加できたことに満足

    View Slide

  9. ISUCON6
    ● Wikipediaのような百科事典サービス
    ● ボトルネック調査(ツール)→N+1クエリの改修
    ● 前年よりできることが増えていることを実感
    ● 直しているはずなのにスコアが伸びず…
    ● 結果: 0→14400
    ● 前年より色々動けたが相変わらずスコアに繋がらない

    View Slide

  10. ISUCON7
    ● チャットサービス
    ● ボトルネック調査ツールを使わずともコードを読みながらN+1のクエリ、
    臭い処理を検討つけることができた
    ● テーブルチェック→効きそうなところにインデックス付与で大幅点数アッ

    ● キャッシュ化対応が間に合わず
    ● 結果: 4097→29758
    ● 確実にできることが増えているのを実感

    View Slide

  11. ISUCON8
    ● 座席の予約システム
    ● sinatraの素振りをやっていたおかげでローカル環境の構築がスムーズ
    に行え、ベンチのfail率が下がった
    ● ノウハウを生かしてN+1クエリや不要なループなどを愚直に直した
    ● 結果: 1500→15842
    ● あと入れたい修正が2,3あったので全部やりきったらもう少し上を目指せ
    たかも?

    View Slide

  12. View Slide

  13. セオリー
    ● N+1クエリ
    ● インデックス
    ● 画像ファイルのnginxによる静的ファイル化
    ● よく参照されるデータのキャッシュ化
    ● データ構造の見直し

    View Slide

  14. 学び
    ● インデックスは大体どこに貼れば効くかは検討がつくようになった
    ● N+1クエリは悪
    ● キャッシュ化と言ってもRedisを使うとかオンメモリに持つとか色んな方法
    があるのでその都度選択する必要がある
    ● 通常の業務でも「速度」というものを意識するようになる
    ● 楽しい!\(^o^)/

    View Slide

  15. まとめ
    相変わらず予選突破できませんが、当日のお祭り感は一度経験してみること
    をおすすめします。
    自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かる
    のでオススメです。
    参加チームが増えてくれることに期待します!
    (1人でも参加できるけどチームの方が楽しいよ!)

    View Slide

  16. まとめ
    相変わらず予選突破できませんが、当日のお祭り感は一度経験してみること
    をおすすめします。
    自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かる
    のでオススメです。
    参加チームが増えてくれることに期待します!
    (1人でも参加できるけどチームの方が楽しいよ!)
    ISCUONやろうぜ!

    View Slide

  17. 参考
    ISUCON5に参加したのでその雑記
    ISUCON6に参加したのでその雑記
    ISUCON7に参加したのでその雑記
    ISUCON8に参加したのでその雑記
    https://qiita.com/yamamoto_hiroya/items

    View Slide