ISUCONボツ技かるた / ISUCON Reject Karuta

ISUCONボツ技かるた / ISUCON Reject Karuta

Dd276c4366435466f92c96ffb09a1bbb?s=128

Hiroki Tanaka

January 18, 2020
Tweet

Transcript

  1. ISUCON ボツ技 かるた 2020/01/18 @dabits

  2. ISUCON、ご存知ですか?

  3. ISUCONとは • Iikanji Speed Up CONtest = ISUCON • 3人1組8時間で行うサーバサイドチューニングコ

    ンテスト • LINE社が毎年主催、賞金100万円 • 問題作成は毎年持ち回り ◦ ‘19 さくらインターネット & mercari ◦ ‘18 DeNA
  4. ISUCONの楽しさ • スコアランキングがリアルタイムに出る • 割と本当の業務に直結する改善課題が多い • 何気にチームワークが一番大事

  5. ISUCONのボツ技とは • ISUCON本戦もしくは本番環境では絶対に使えな いチューニング手法 • 本戦前の個人練習戦で編み出したり、人から聞 いたり。。。!

  6. 年始なので 「い」「す」「こ」「ん」の かるたにして紹介します

  7. ISUCONの「い」

  8. いえないような パスワード 暗号強度 い 6d8bc1284964660372e0 b7f84d9053cb40b50b39 ↓ aG9nZWZ1Z2FwaXlvCg==

  9. いえないようなパスワード暗号強度 • DBに保存するパスワードを極力簡単な暗号化方式にすること でCPUリソースを確保する技 • 問題によってはログイン試行回数が多く、SHA1など暗号化処 理でCPUを大量消費する • まぎれもなく本番環境ではそんなことしてはいけない、本戦で も場合によっては失格に

  10. ISUCONの「す」

  11. すべて /dev/shm す /var/lib/mysql /dev/shm

  12. すべて/dev/shm • I/Oが発生するものをすべて/dev/shmに入れる技 • /var/lib/mysqlを/dev/shmに突っ込むと実質オンメモリに!? • スコアが低い割に再起動すると吹っ飛ぶのでボツ

  13. ISUCONの「こ」

  14. このデータ 整合性 ないけどいいや こ

  15. このデータ整合性ないけどいいや • 3台のサーバを自由に使っていい問題の場合、すべてのサー バで捌く代わりにデータ同期を取らない技 • ベンチマーカーの作りが甘い場合、1セッションをすべて1サー バで捌くことがあり、ベンチがNGにならない • 本番環境を前提にした場合、LBで確実にuidごとに分岐でき ればいいが、そもDBシャーディングなどのほうが良い

  16. ISUCONの「ん」

  17. んんん、ここは 流入制限で sleep1 ! ん

  18. んんん、ここは流入制限でsleep 1! • 頻繁にajaxされるページに対してsleep 1を入れることにより、 1ユーザあたりのリクエスト数を減らしてCPUリソースを確保す る技 • ISUCONではルール上JSの書き換えが禁止されているため、 ポーリングの回数を減らすためにこの手法が度々使われる

    • ISUCONでは容認されるが本番環境ではそもそもポーリング の頻度をクライアントプログラム側で減らすべき
  19. 興味を持ったら 過去問題やってみましょ! https://github.com/isucon

  20. ありがとうございました