Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ISUCONのススメ
Search
yamamoto-hiroya
August 31, 2019
Technology
970
0
Share
ISUCONのススメ
builderscon tokyo 2019 LT 登壇資料
https://builderscon.io/tokyo/2019
yamamoto-hiroya
August 31, 2019
More Decks by yamamoto-hiroya
See All by yamamoto-hiroya
AUTO_INCREMENTのIDカラムがオーバーフローしたらどうなるの?実例から学ぶDB設計の注意点
yamamotohiroya
1
920
パフォーマンスを改善するには仕様変更が1番はやい
yamamotohiroya
17
8.1k
プルリクサイズが大きいと警告してくれる君を作りました!
yamamotohiroya
1
550
安全にプロセスを停止するためにシグナル制御を学ぼう!
yamamotohiroya
0
2.2k
カンファレンスはフィードバックが大事
yamamotohiroya
1
150
Other Decks in Technology
See All in Technology
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
200
Loadbalancing exporter internals
ymotongpoo
1
120
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
700
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
180
TypeScriptはどのようにどこまで推論できるのか ─ とにかく as は禁止で
ypresto
2
360
データ基盤構築・運用の現場から 〜 Snowflake Intelligence 導入で変わった、データ活用の未来 〜
wonohe
0
150
TSKaigi 2026 - Auth.jsからBetter Authへの 移行に見る「型とランタイム」の 設計思想の変化
teamlab
PRO
1
210
コーポレートサイトのアクセシビリティ改善とJIS準拠への実践
lycorptech_jp
PRO
2
120
Agent Development Kit (ADK)で学ぶ実践Context Engineeringと社内での応用例
lycorptech_jp
PRO
0
330
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
47k
ルール・ロール・ツールを創る / Creating Rules, Roles and Tools
ks91
PRO
0
150
TypeScriptで実現する既存APIを活用したリモートMCPサーバー構築 / TSKaigi 2026
soarteclab
1
240
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Code Review Best Practice
trishagee
74
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How to train your dragon (web standard)
notwaldorf
97
6.6k
Leo the Paperboy
mayatellez
7
1.8k
Building Applications with DynamoDB
mza
96
7k
Facilitating Awesome Meetings
lara
57
6.9k
Optimizing for Happiness
mojombo
378
71k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Transcript
ISUCONのススメ Hamee株式会社 山本紘也 twitter @HiroyaYamamoto1
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あったので全部やりきったらもう少し上を目指せ たかも?
None
セオリー • N+1クエリ • インデックス • 画像ファイルのnginxによる静的ファイル化 • よく参照されるデータのキャッシュ化 •
データ構造の見直し
学び • インデックスは大体どこに貼れば効くかは検討がつくようになった • N+1クエリは悪 • キャッシュ化と言ってもRedisを使うとかオンメモリに持つとか色んな方法 があるのでその都度選択する必要がある • 通常の業務でも「速度」というものを意識するようになる
• 楽しい!\(^o^)/
まとめ 相変わらず予選突破できませんが、当日のお祭り感は一度経験してみること をおすすめします。 自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かる のでオススメです。 参加チームが増えてくれることに期待します! (1人でも参加できるけどチームの方が楽しいよ!)
まとめ 相変わらず予選突破できませんが、当日のお祭り感は一度経験してみること をおすすめします。 自分が社会のエンジニアとしてどのくらいの位置にいるのか客観的に分かる のでオススメです。 参加チームが増えてくれることに期待します! (1人でも参加できるけどチームの方が楽しいよ!) ISCUONやろうぜ!
参考 ISUCON5に参加したのでその雑記 ISUCON6に参加したのでその雑記 ISUCON7に参加したのでその雑記 ISUCON8に参加したのでその雑記 https://qiita.com/yamamoto_hiroya/items