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
0
930
ISUCONのススメ
builderscon tokyo 2019 LT 登壇資料
https://builderscon.io/tokyo/2019
yamamoto-hiroya
August 31, 2019
Tweet
Share
More Decks by yamamoto-hiroya
See All by yamamoto-hiroya
AUTO_INCREMENTのIDカラムがオーバーフローしたらどうなるの?実例から学ぶDB設計の注意点
yamamotohiroya
1
610
パフォーマンスを改善するには仕様変更が1番はやい
yamamotohiroya
16
7.4k
プルリクサイズが大きいと警告してくれる君を作りました!
yamamotohiroya
1
460
安全にプロセスを停止するためにシグナル制御を学ぼう!
yamamotohiroya
0
1.8k
カンファレンスはフィードバックが大事
yamamotohiroya
1
140
Other Decks in Technology
See All in Technology
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
390
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
240
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
160
2025年になってもまだMySQLが好き
yoku0825
8
4.7k
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
540
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
400
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
279
23k
Statistics for Hackers
jakevdp
799
220k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Context Engineering - Making Every Token Count
addyosmani
2
41
Gamification - CAS2011
davidbonilla
81
5.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Why Our Code Smells
bkeepers
PRO
339
57k
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