SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
I/Oを極めろ! for PHPer 
- NewRelicを利用したパフォーマンス改善 - 
藤原 吉規
-自己紹介 - 
ChatWork株式会社 
藤原 吉規 技術部 
サーバーエンジニア 
ビジネスチャットツール「チャットワーク」を展開中 
東京:18人 
大阪:15人USA:6人 
ルクセンブルクに子会社を設立
チャットワークのご紹介 
クラウド型ビジネスチャットツール 
チャットの効率性・シンプルさをビジネスへ 
+ 
ビデオ通話 
チャットタスク管理 
in the cloud
導入ユーザー数46万ユーザー突破! 
導入企業例: 
(2014年10月現在) 
ユーザー数: 
500000 
375000 
250000 
125000 
0 
2011 6 9 12 2012 6 9 12 2013 6 9 12 2014 6 9
アジェンダ 
• はじめに 
• 現在のインフラ構成 
• NewRelicについて 
• 具体的なボトルネックと改善例
はじめに 
• 2011年のサービス開始当初から、成長し続けるサービ 
スを支えるための試行錯誤を実施 
• 2013年からは、主にNewRelicを利用してサービスのボ 
トルネックを計測しつつ改善 
• 今までボトルネックになった部分とのその改善方法を 
ご紹介
現在のインフラ構成
NewRelicについて
NewRelicについて 
• アプリケーション・インフラのパフォーマンス監視サー 
ビス(有料) 
• 各言語用のAgentをサーバーにインストールして利用 
• Pluginを利用すると、AWSの各サービスや外部サービ 
スの監視も可能
改善サイクル 
• NewRelicトレースログからボトルネック箇所の特定 
• PHPのチャットコンサル等を利用して方針決定 
• アプリケーション設計変更 or インフラスケールを決定 
• NewRelicで改善確認
具体的なボトルネックと 
改善例
Amazon S3 
の問題 
• チャットワークのファイル共有機能で利用 
• Webサーバー経由のUpload/Downloadによるパ 
フォーマンス低下
Amazon S3 
の解決策 
• Pre-Signed URLを利用したUpload/Downloadに変 
更 
• http://qiita.com/inokappa/items/ 
dc3ef8b564c7d1f63be2
Amazon EC2 
の問題 
• Elastic Block StorageのIO能力不足 
• syslog 
• php.ini、upload_tmp_dir(/tmp) 
• TMPDIR(/tmp) 
• putenv(‘TMPDIR=/tmp')
Amazon EC2 
の解決策 
• Ephemeral Diskの利用
memcached(ElastiCache) 
の問題 
• 大量のTIME_WAITとレスポンス低下 
• ElastiCache側のCPU使用率の増大
memcached(ElastiCache) 
の解決策 
• php-memcachedの持続的接続を利用 
• ini_set('session.save_path','PERSISTENT=1 
localhost:11211'); 
• http://qiita.com/shin1x1/items/ 
092588ac9b4f610b40d6
MySQL(RDS)の問題 
• マスタDBのCPU利用率増加 
• デッドロック 
• Replica遅延
MySQL(RDS)の解決策 
• 接続タイムアウトの適切な指定 
• $mysqli- 
>options(MYSQLI_OPT_CONNECT_TIMEOUT, 5) 
• innodb_lock_wait_timeoutの指定 
• $mysqli->query("SET 
innodb_lock_wait_timeout=5")
MySQL(RDS)の解決策 
• 持続的接続の利用 
• $mysqli->real_connect('p:localhost', 'my_user', 
'my_password', 'my_db') 
• AutoCommit OFF 
• $mysqli->autocommit(FALSE);
MySQL(RDS)の解決策 
• mysqlnd.net_read_timeoutの指定 
• http://jp1.php.net/manual/en/ 
mysqlnd.config.php#ini.mysqlnd.net-read-timeout
Amazon SQS,DynamoDB 
の問題 
• 大量のTIME_WAITとレスポンス低下 
• AWS SDK for PHPのパフォーマンスが出ない
Amazon SQS,DynamoDB 
の解決策 
• カーネルパラメータ変更 
• http://understeer.hatenablog.com/entry/ 
2014/02/25/173810 
! 
/etc/sysctl.conf 
net.core.somaxconn = 10240 
net.core.netdev_max_backlog = 10240 
net.ipv4.tcp_max_syn_backlog = 10240 
net.ipv4.tcp_max_syn_backlog = 10240 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.ip_local_port_range = 1024 65535 
net.ipv4.tcp_fin_timeout = 10
Amazon SQS,DynamoDB 
の解決策 
• AWS SDK for PHP Performance Guide 
• http://docs.aws.amazon.com/aws-sdk-php/ 
guide/latest/performance.html 
• Class Preloader for PHP 
• https://github.com/mtdowling/ClassPreloader
そして、Scalaへ!
ありがとうございました!

Weitere ähnliche Inhalte

Ähnlich wie I/Oを極めろ! for PHPer - NewRelicを利用したパフォーマンス改善 -

【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術Yoshinori Fujiwara
 
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社leverages_event
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のためにIBM Systems @ IBM Japan, Ltd.
 
DeviceConnect向けCordovaプラグインを作ってみた
DeviceConnect向けCordovaプラグインを作ってみたDeviceConnect向けCordovaプラグインを作ってみた
DeviceConnect向けCordovaプラグインを作ってみたDevice WebAPI Consortium
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )Yuji Otani
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリングInnova Inc.
 
Webmarketing_CareerBar_ver1.pdf
Webmarketing_CareerBar_ver1.pdfWebmarketing_CareerBar_ver1.pdf
Webmarketing_CareerBar_ver1.pdfCybozu, Inc.
 
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術div Inc
 
Gmo media.inc dev ops of own way
Gmo media.inc dev ops of own wayGmo media.inc dev ops of own way
Gmo media.inc dev ops of own wayDai Utsui
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」naoki ando
 
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜kusami
 
コールセンターシステムを0から作った話
コールセンターシステムを0から作った話コールセンターシステムを0から作った話
コールセンターシステムを0から作った話Kohtaro Nishi
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果Hideaki Tokida
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントMasakazu Muraoka
 
UD company introduction 2022
UD company introduction 2022UD company introduction 2022
UD company introduction 2022RikuHamaguchi
 
今なぜサーバーレスなのか
今なぜサーバーレスなのか今なぜサーバーレスなのか
今なぜサーバーレスなのか真吾 吉田
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座DIVE INTO CODE Corp.
 

Ähnlich wie I/Oを極めろ! for PHPer - NewRelicを利用したパフォーマンス改善 - (20)

【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術
 
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
【 ITベンチャーを支えるテクノロジー 】チャットワークを支える技術|Chatwork株式会社
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために
 
DeviceConnect向けCordovaプラグインを作ってみた
DeviceConnect向けCordovaプラグインを作ってみたDeviceConnect向けCordovaプラグインを作ってみた
DeviceConnect向けCordovaプラグインを作ってみた
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング
 
Xpjug lt-20210918
Xpjug lt-20210918Xpjug lt-20210918
Xpjug lt-20210918
 
Webmarketing_CareerBar_ver1.pdf
Webmarketing_CareerBar_ver1.pdfWebmarketing_CareerBar_ver1.pdf
Webmarketing_CareerBar_ver1.pdf
 
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
 
Gmo media.inc dev ops of own way
Gmo media.inc dev ops of own wayGmo media.inc dev ops of own way
Gmo media.inc dev ops of own way
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
 
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜
PagerDuty会社概要・インシデント管理ソリューション紹介資料 〜インシデントをより早く・少ないリソースで解決し、 将来のインシデントを未然に防ぐには〜
 
コールセンターシステムを0から作った話
コールセンターシステムを0から作った話コールセンターシステムを0から作った話
コールセンターシステムを0から作った話
 
Tibco mashery資料
Tibco mashery資料Tibco mashery資料
Tibco mashery資料
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイント
 
UD company introduction 2022
UD company introduction 2022UD company introduction 2022
UD company introduction 2022
 
今なぜサーバーレスなのか
今なぜサーバーレスなのか今なぜサーバーレスなのか
今なぜサーバーレスなのか
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
 

Kürzlich hochgeladen

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Kürzlich hochgeladen (10)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

I/Oを極めろ! for PHPer - NewRelicを利用したパフォーマンス改善 -