ISUCONの話(夏期講習2014)
Upcoming SlideShare
Loading in...5
×
 

ISUCONの話(夏期講習2014)

on

  • 5,077 views

 

Statistics

Views

Total Views
5,077
Views on SlideShare
1,413
Embed Views
3,664

Actions

Likes
9
Downloads
8
Comments
0

14 Embeds 3,664

http://isucon.net 2881
http://blog.en30.net 372
http://rkmathi.hatenablog.com 222
http://localhost 83
https://twitter.com 51
http://keens.github.io 29
http://feedly.com 10
http://s.deeeki.com 5
http://www.slideee.com 5
http://tweetedtimes.com 2
http://twicli.neocat.jp 1
https://tweetdeck.twitter.com 1
http://fl.ssig33.com 1
https://kcw.kddi.ne.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ISUCONの話(夏期講習2014) ISUCONの話(夏期講習2014) Presentation Transcript

  • ISUCONの話 2014/08/20 ISUCON夏期講習 LINE株式会社 田籠聡(tagomoris)
  • で、誰? tagomoris kazeburo sugyan LINE社員(t,k,s) ISUCON出題(t,k) ISUCON優勝(s) ISUCON2出題(t,k,s) ISUCON3優勝(t,k,s)
  • ISUCON4 予選: 9/27, 28 決勝: 11/8
  • ISUCONとは Webアプリケーション高速化コンテスト 1: blog, 2: チケット販売サイト 3予選: wiki的サイト, 3決勝: 画像SNS ベンチマークで最高スコアを出せば勝利
  • user4 user3 user2 user1 ※イメージ server server server server server server server server serverserver server server bench 高負荷アクセス 動作チェック
  • ぼくらのお仕事について Webサービス/インターネットサービスの提供 サーバサイドの環境構築・プログラミング ネットワーク, サーバ, OS Webサーバ,RDBMS, KVS 等のミドルウェア SQL, プログラムコード 要するにISUCONの作業対象ほとんど
  • 普段の仕事 ネットワーク・サーバ・OS・ミドルウェア 環境の選定、セットアップ モニタリング、トラブル対応 そのためのツール作り、自動化 データセンタ設計、広域ネットワーク、セキ ュリティ、などなど
  • ISUCON参加者の人々 インターネットサービス関連の人が多いが、様々 会社の同僚同士のチームが多い ほか、勉強会などでの知り合いなど スキル的にはいろいろ ITインフラ専門の人ばかりのチーム ITインフラ + アプリな人のチーム
  • Webサービスにおけるパフォーマンス 「パフォーマンス」とは レスポンスタイム: 1リクエスト → 1レスポンス の時間 スループット: 1秒間に返せるレスポンスの数 短いレスポンスタイム、高いスループット == 「良いパフォーマンス」
  • パフォーマンス向上の重要性 ユーザ体験の向上 ユーザのアクションにすぐに反応する 入力内容が遅れず反映される 運用コストの低減 必要なサーバ台数の減少 高負荷サーバ減少→メンテナンス手間の削減
  • ISUCONにおける パフォーマンス is スコア
  • スコア向上のためなら (レギュレーションの許す範囲内で) 何をやってもOK!
  • スコア向上のためなら (レギュレーションの許す範囲内で) 何をやってもOK!
  • レギュレーション よく読もう ISUCON3 予選レギュレーション https://gist.github.com/acidlemon/2c7d4e2e5b4e24007e39 ISUCON3 決勝レギュレーション https://gist.github.com/acidlemon/049fe8c9a790a52814fc
  • Web Applicationとは
  • benchmark tools server web server application server database server
  • benchmark tools server web server server application server server application server server database server
  • Web Server Apache httpd, Nginx, etc Serving static contents html, js/css, jpg/png, ... Reverse proxy for dynamic contents session control load balancing authentication caching server web server server application server appli ser server database server
  • Application Server Server process executes application code html, HTTP API endpoint generating views calling SQL calling external api referring caches server web server server application server appli ser server database server
  • Database Server MySQL, PostgreSQL, Oracle DB, MS SQLServer, ... (MongoDB, Cassandra, Redis, ...) storing data search/respond data server web server server application server appli ser server database server
  • Cache Server server web server server application server appli ser server database server cache server Memcached, Redis, Varnish cache, Squid, Apache httpd(mod_cache), Nginx caching whole page(html) caching parts of page(html) caching query results(objects) ... cache everything w/ high costs
  • ISUCONで何をやるか
  • 教訓ぽいもの やったことがないことはできない 普段どおりやる 普段やれないことをやる 何をやるべきか最初によく見る 何をやったかをちゃんと把握する いつでも戻れるようにしておく
  • 安全のために 最初の状態を保存しておく ソースコード、初期データ、初期設定 初期スコア(出しておく!)と初期状態 何をやったか記録しておく ソースコードや設定のバージョン管理 相談内容の記録
  • ボトルネックを見付けて 解決する HTTPD? connections? cpu? memory? Application? connections? cpu? memory? RDBMS? read? write? Network? data size? latency? ボトルネックは解決するたびに移っていく
  • スコア スコアを向上させる スコア算出ルールを見る 何を改善すべきかを考える スコアの揺れ 実行時の状況によって多少の揺れが出る わずかな差異(誤差)にまどわされない 改善は劇的に行う(×1.2倍 ○5倍!)
  • 制限時間 時間があります 7時間で何もかもやるのは不可能 最初に落ち着いて内容を把握する 時間と相談してやれそうなことを考える 大きな改造にいつ手をつけるか 早目がよい、ほぼワンチャンス 終了時間に動いてなければならない
  • 順番で言うと 1. 初期状態の保存 (コードのバージョン管理、初期データ保存) 2.実際にブラウザから触ってみる 3.ベンチマークツールを動かしてみる (アクセスログの確認、データ量の確認) 4.コードを読んで内容を把握 5.改善内容の検討、時間と相談して方針決定 6.実際に改善にとりかかる
  • Enjoy ISUCON!