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ボツ技かるた / ISUCON Reject Karuta
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiroki Tanaka
January 18, 2020
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ISUCONボツ技かるた / ISUCON Reject Karuta
Hiroki Tanaka
January 18, 2020
More Decks by Hiroki Tanaka
See All by Hiroki Tanaka
DockerCIビルドを一歩先へ Buildkitを運用前提で試食してみた / Docker ci with buildkit
dabits
0
200
U30エンジニアだからこそ実現できた劇的ビフォーアフター #bcu30
dabits
1
4.6k
Other Decks in Programming
See All in Programming
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
580
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
230
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
220
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
170
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
680
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
200
5分で問診!Composer セキュリティ健康診断
codmoninc
0
870
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.5k
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
480
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
480
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Building Applications with DynamoDB
mza
96
7.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
First, design no harm
axbom
PRO
2
1.2k
My Coaching Mixtape
mlcsv
0
200
Crafting Experiences
bethany
1
240
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
430
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
Transcript
ISUCON ボツ技 かるた 2020/01/18 @dabits
ISUCON、ご存知ですか?
ISUCONとは • Iikanji Speed Up CONtest = ISUCON • 3人1組8時間で行うサーバサイドチューニングコ
ンテスト • LINE社が毎年主催、賞金100万円 • 問題作成は毎年持ち回り ◦ ‘19 さくらインターネット & mercari ◦ ‘18 DeNA
ISUCONの楽しさ • スコアランキングがリアルタイムに出る • 割と本当の業務に直結する改善課題が多い • 何気にチームワークが一番大事
ISUCONのボツ技とは • ISUCON本戦もしくは本番環境では絶対に使えな いチューニング手法 • 本戦前の個人練習戦で編み出したり、人から聞 いたり。。。!
年始なので 「い」「す」「こ」「ん」の かるたにして紹介します
ISUCONの「い」
いえないような パスワード 暗号強度 い 6d8bc1284964660372e0 b7f84d9053cb40b50b39 ↓ aG9nZWZ1Z2FwaXlvCg==
いえないようなパスワード暗号強度 • DBに保存するパスワードを極力簡単な暗号化方式にすること でCPUリソースを確保する技 • 問題によってはログイン試行回数が多く、SHA1など暗号化処 理でCPUを大量消費する • まぎれもなく本番環境ではそんなことしてはいけない、本戦で も場合によっては失格に
ISUCONの「す」
すべて /dev/shm す /var/lib/mysql /dev/shm
すべて/dev/shm • I/Oが発生するものをすべて/dev/shmに入れる技 • /var/lib/mysqlを/dev/shmに突っ込むと実質オンメモリに!? • スコアが低い割に再起動すると吹っ飛ぶのでボツ
ISUCONの「こ」
このデータ 整合性 ないけどいいや こ
このデータ整合性ないけどいいや • 3台のサーバを自由に使っていい問題の場合、すべてのサー バで捌く代わりにデータ同期を取らない技 • ベンチマーカーの作りが甘い場合、1セッションをすべて1サー バで捌くことがあり、ベンチがNGにならない • 本番環境を前提にした場合、LBで確実にuidごとに分岐でき ればいいが、そもDBシャーディングなどのほうが良い
ISUCONの「ん」
んんん、ここは 流入制限で sleep1 ! ん
んんん、ここは流入制限でsleep 1! • 頻繁にajaxされるページに対してsleep 1を入れることにより、 1ユーザあたりのリクエスト数を減らしてCPUリソースを確保す る技 • ISUCONではルール上JSの書き換えが禁止されているため、 ポーリングの回数を減らすためにこの手法が度々使われる
• ISUCONでは容認されるが本番環境ではそもそもポーリング の頻度をクライアントプログラム側で減らすべき
興味を持ったら 過去問題やってみましょ! https://github.com/isucon
ありがとうございました