Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ISUCON ボツ技 かるた 2020/01/18 @dabits
Slide 2
Slide 2 text
ISUCON、ご存知ですか?
Slide 3
Slide 3 text
ISUCONとは ● Iikanji Speed Up CONtest = ISUCON ● 3人1組8時間で行うサーバサイドチューニングコ ンテスト ● LINE社が毎年主催、賞金100万円 ● 問題作成は毎年持ち回り ○ ‘19 さくらインターネット & mercari ○ ‘18 DeNA
Slide 4
Slide 4 text
ISUCONの楽しさ ● スコアランキングがリアルタイムに出る ● 割と本当の業務に直結する改善課題が多い ● 何気にチームワークが一番大事
Slide 5
Slide 5 text
ISUCONのボツ技とは ● ISUCON本戦もしくは本番環境では絶対に使えな いチューニング手法 ● 本戦前の個人練習戦で編み出したり、人から聞 いたり。。。!
Slide 6
Slide 6 text
年始なので 「い」「す」「こ」「ん」の かるたにして紹介します
Slide 7
Slide 7 text
ISUCONの「い」
Slide 8
Slide 8 text
いえないような パスワード 暗号強度 い 6d8bc1284964660372e0 b7f84d9053cb40b50b39 ↓ aG9nZWZ1Z2FwaXlvCg==
Slide 9
Slide 9 text
いえないようなパスワード暗号強度 ● DBに保存するパスワードを極力簡単な暗号化方式にすること でCPUリソースを確保する技 ● 問題によってはログイン試行回数が多く、SHA1など暗号化処 理でCPUを大量消費する ● まぎれもなく本番環境ではそんなことしてはいけない、本戦で も場合によっては失格に
Slide 10
Slide 10 text
ISUCONの「す」
Slide 11
Slide 11 text
すべて /dev/shm す /var/lib/mysql /dev/shm
Slide 12
Slide 12 text
すべて/dev/shm ● I/Oが発生するものをすべて/dev/shmに入れる技 ● /var/lib/mysqlを/dev/shmに突っ込むと実質オンメモリに!? ● スコアが低い割に再起動すると吹っ飛ぶのでボツ
Slide 13
Slide 13 text
ISUCONの「こ」
Slide 14
Slide 14 text
このデータ 整合性 ないけどいいや こ
Slide 15
Slide 15 text
このデータ整合性ないけどいいや ● 3台のサーバを自由に使っていい問題の場合、すべてのサー バで捌く代わりにデータ同期を取らない技 ● ベンチマーカーの作りが甘い場合、1セッションをすべて1サー バで捌くことがあり、ベンチがNGにならない ● 本番環境を前提にした場合、LBで確実にuidごとに分岐でき ればいいが、そもDBシャーディングなどのほうが良い
Slide 16
Slide 16 text
ISUCONの「ん」
Slide 17
Slide 17 text
んんん、ここは 流入制限で sleep1 ! ん
Slide 18
Slide 18 text
んんん、ここは流入制限でsleep 1! ● 頻繁にajaxされるページに対してsleep 1を入れることにより、 1ユーザあたりのリクエスト数を減らしてCPUリソースを確保す る技 ● ISUCONではルール上JSの書き換えが禁止されているため、 ポーリングの回数を減らすためにこの手法が度々使われる ● ISUCONでは容認されるが本番環境ではそもそもポーリング の頻度をクライアントプログラム側で減らすべき
Slide 19
Slide 19 text
興味を持ったら 過去問題やってみましょ! https://github.com/isucon
Slide 20
Slide 20 text
ありがとうございました