SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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!

Contenu connexe

Tendances

Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
Kentaro Ohkouchi
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
 

Tendances (20)

当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組
 
PowerShell de Azure
PowerShell de AzurePowerShell de Azure
PowerShell de Azure
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
 
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
 
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbcZabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
 
ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~
 
Zabbixを2分でインストール
Zabbixを2分でインストールZabbixを2分でインストール
Zabbixを2分でインストール
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
mysqlcasual6-fabric
mysqlcasual6-fabricmysqlcasual6-fabric
mysqlcasual6-fabric
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
 
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
 
Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説
 

Similaire à ISUCONの話(夏期講習2014)

第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
 
クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へ
Cybozucommunity
 

Similaire à ISUCONの話(夏期講習2014) (20)

Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
 
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
Whats service mesh & istio ?
Whats service mesh & istio ?Whats service mesh & istio ?
Whats service mesh & istio ?
 
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter MeasurementIoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
 
JAWS-UG大阪第4回 AWSアップデート 2011年11月5日
JAWS-UG大阪第4回 AWSアップデート 2011年11月5日JAWS-UG大阪第4回 AWSアップデート 2011年11月5日
JAWS-UG大阪第4回 AWSアップデート 2011年11月5日
 
第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説第3回SEMAT勉強会 SEMATエッセンス解説
第3回SEMAT勉強会 SEMATエッセンス解説
 
RICC update meet34
RICC update meet34RICC update meet34
RICC update meet34
 
AWS re:Inforce2019 re:Cap LT
AWS re:Inforce2019 re:Cap LTAWS re:Inforce2019 re:Cap LT
AWS re:Inforce2019 re:Cap LT
 
クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へ
 
さくらインターネットにおけるアニーリングシステム評価の取り組みのご紹介
さくらインターネットにおけるアニーリングシステム評価の取り組みのご紹介さくらインターネットにおけるアニーリングシステム評価の取り組みのご紹介
さくらインターネットにおけるアニーリングシステム評価の取り組みのご紹介
 
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
 
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
 
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
 
さくらのクラウド導入セミナー(2016.10) 第一部 導入編
さくらのクラウド導入セミナー(2016.10) 第一部 導入編さくらのクラウド導入セミナー(2016.10) 第一部 導入編
さくらのクラウド導入セミナー(2016.10) 第一部 導入編
 
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係
 
20201204 aws inter-region-network
20201204 aws inter-region-network20201204 aws inter-region-network
20201204 aws inter-region-network
 
[JAWS-SG#02] JAWS DAYSのオンライン配信は君でもできる
[JAWS-SG#02] JAWS DAYSのオンライン配信は君でもできる[JAWS-SG#02] JAWS DAYSのオンライン配信は君でもできる
[JAWS-SG#02] JAWS DAYSのオンライン配信は君でもできる
 
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例
 
20150530 JAWS-UG kintone Café Kochi
20150530 JAWS-UG kintone Café Kochi20150530 JAWS-UG kintone Café Kochi
20150530 JAWS-UG kintone Café Kochi
 

Plus de SATOSHI TAGOMORI

Plus de SATOSHI TAGOMORI (20)

Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
 
Good Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/OperationsGood Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/Operations
 
Maccro Strikes Back
Maccro Strikes BackMaccro Strikes Back
Maccro Strikes Back
 
Invitation to the dark side of Ruby
Invitation to the dark side of RubyInvitation to the dark side of Ruby
Invitation to the dark side of Ruby
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
 
Make Your Ruby Script Confusing
Make Your Ruby Script ConfusingMake Your Ruby Script Confusing
Make Your Ruby Script Confusing
 
Hijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in RubyHijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in Ruby
 
Lock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive OperationsLock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive Operations
 
Data Processing and Ruby in the World
Data Processing and Ruby in the WorldData Processing and Ruby in the World
Data Processing and Ruby in the World
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
 
Technologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise BusinessTechnologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise Business
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
 
Perfect Norikra 2nd Season
Perfect Norikra 2nd SeasonPerfect Norikra 2nd Season
Perfect Norikra 2nd Season
 
Fluentd 101
Fluentd 101Fluentd 101
Fluentd 101
 
To Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT ToTo Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT To
 
The Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
 
How To Write Middleware In Ruby
How To Write Middleware In RubyHow To Write Middleware In Ruby
How To Write Middleware In Ruby
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldModern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
 
Open Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud ServiceOpen Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud Service
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
 

Dernier

Dernier (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

ISUCONの話(夏期講習2014)