builderscon tokyo 2019 LT 登壇資料 https://builderscon.io/tokyo/2019
ISUCONのススメHamee株式会社 山本紘也twitter @HiroyaYamamoto1
View Slide
Hameeではエンジニアを募集しております!● Hameeはbuiderscon tokyo2019の同時通訳スポンサーをしております● 転職をお考えの方は是非気軽に話しかけてください(選考が有利になるチケットがあるとかないとか…)
目次● ISUCONとは● 参戦履歴● 学び● まとめ
ISUCONとはhttp://isucon.net/WEBサービスのチューニングのうまさを点数化して全国で競い合うコンテスト名前は「いい感じにスピードアップコンテスト」(Iikanjini Speed Up Contest)の略。毎年10月前後に開催していて今年で9回目予選と本選があり、予選上位数チームが本選出場
きっかけ2015/08に会社のインフラエンジニアの社内発表にて存在をする当時エンジニア2年目だった私はどこまでやれるのか試してみたいと思い参加表明優勝賞金100万円に目がくらむ
参戦履歴1● 2015/09 ISUCON5○ バナナマンズ○ 予選落ち(T_T)● 2016/09 ISUCON6○ バナナマンリターンズ○ 予選落ち。・゚゚・(>_<;)・゚゚・。● 2017/10 ISUCON7○ バナナマンさん○ 予選落ち༼;´༎ຶ ༎ຶ༽
参戦履歴2● 2018/09 ISUCON8○ バナナマンズ -4thの覚醒-○ 予選落ち。。。○ ただし528チーム中64位と大健闘● 2019/09 ISUCON9○ BANANINE○ comming soon
ISUCON5● SNSっぽいサービス● 画面数・テーブル数が多く、ボトルネックを探すところから● 2年目エンジニアはsshした先のサーバで色んな操作をするだけで一苦労、時間がかかった● 結果: 65点→1864点● 何の成果も得られませんでした!● お祭りに参加できたことに満足
ISUCON6● Wikipediaのような百科事典サービス● ボトルネック調査(ツール)→N+1クエリの改修● 前年よりできることが増えていることを実感● 直しているはずなのにスコアが伸びず…● 結果: 0→14400● 前年より色々動けたが相変わらずスコアに繋がらない
ISUCON7● チャットサービス● ボトルネック調査ツールを使わずともコードを読みながらN+1のクエリ、臭い処理を検討つけることができた● テーブルチェック→効きそうなところにインデックス付与で大幅点数アップ● キャッシュ化対応が間に合わず● 結果: 4097→29758● 確実にできることが増えているのを実感
ISUCON8● 座席の予約システム● sinatraの素振りをやっていたおかげでローカル環境の構築がスムーズに行え、ベンチのfail率が下がった● ノウハウを生かしてN+1クエリや不要なループなどを愚直に直した● 結果: 1500→15842● あと入れたい修正が2,3あったので全部やりきったらもう少し上を目指せたかも?
セオリー● N+1クエリ● インデックス● 画像ファイルのnginxによる静的ファイル化● よく参照されるデータのキャッシュ化● データ構造の見直し
学び● インデックスは大体どこに貼れば効くかは検討がつくようになった● N+1クエリは悪● キャッシュ化と言ってもRedisを使うとかオンメモリに持つとか色んな方法があるのでその都度選択する必要がある● 通常の業務でも「速度」というものを意識するようになる● 楽しい!\(^o^)/
まとめ相変わらず予選突破できませんが、当日のお祭り感は一度経験してみることをおすすめします。自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かるのでオススメです。参加チームが増えてくれることに期待します!(1人でも参加できるけどチームの方が楽しいよ!)
まとめ相変わらず予選突破できませんが、当日のお祭り感は一度経験してみることをおすすめします。自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かるのでオススメです。参加チームが増えてくれることに期待します!(1人でも参加できるけどチームの方が楽しいよ!)ISCUONやろうぜ!
参考ISUCON5に参加したのでその雑記ISUCON6に参加したのでその雑記ISUCON7に参加したのでその雑記ISUCON8に参加したのでその雑記https://qiita.com/yamamoto_hiroya/items