Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
こまけぇこたぁいいんだよ!! PHPWebアプリケーションを早くする、それだけだ / It doesn't matter how small it is! Make PHPWeb applications faster, that's all!
Search
shiro seike
PRO
February 11, 2024
Programming
0
14
こまけぇこたぁいいんだよ!! PHPWebアプリケーションを早くする、それだけだ / It doesn't matter how small it is! Make PHPWeb applications faster, that's all!
PHPカンファレンス関西2024
shiro seike
PRO
February 11, 2024
Tweet
Share
More Decks by shiro seike
See All by shiro seike
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
技術力を高め合う “開けた”企業間コミュニティの形成 / Formation of an "open" inter-company community to enhance technological capabilities
seike460
PRO
1
66
有効な使い方を正しく理解して実装する PHP8.3の最新機能の「ウラ側」 / Understanding and Implementing Effective Usage Correctly The "Uraside" of PHP 8.3's Latest Features
seike460
PRO
1
74
有効な使い方を正しく理解して実装する PHP8.3の最新機能 / Proper understanding and implementation of effective usage Latest features in PHP 8.3
seike460
PRO
2
280
事例から見るサーバーレスの効果 / Serverless Effectiveness as Seen in Case Studies
seike460
PRO
1
90
Secure Serverless Architecture
seike460
PRO
2
560
地方こそサーバーレス、その意義に迫るサーバーレスPHP / Serverless PHP: The Rural Areas, and Why Serverless PHP Matters
seike460
PRO
2
180
サーバーレスらしさを意識した AWSにおける開発手法 / Development methodologies in AWS that are serverless-like
seike460
PRO
1
75
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
3
460
Other Decks in Programming
See All in Programming
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Product Management LT会_クアンド新家
shinshin
0
210
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
さきがけから振り返るアーキテクチャ刷新 / Reflecting on the Architectural Renewal from the Vanguard
nrslib
2
770
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
81k
わかりやすい正解を捨てて、コトに向き合う - スクラムフェス金沢2024 スポンサーセッション
yusukekokubo
0
170
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
20240706_CDKConf
takuyay0ne
0
1.2k
Trial
cairolibrary720
1
130
リハビリmruby
kishima
1
160
はしめてのプログラミングとロボット制御
watawatavoltage
0
290
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
29
6.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Raft: Consensus for Rubyists
vanstee
134
6.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
224
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
Statistics for Hackers
jakevdp
792
220k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
What's new in Ruby 2.0
geeforr
338
31k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Transcript
!! PHPWeb PHP 西 2024 2 0 24 . 2
. 11 @seike 4 60 1
自己 @seike 46 0 - - @seike 46 0 -
AWS Community Builder Serverless - Fusic - / 門 - / - 月 PHP - PHP 2024 LT ( ) - PHP 大 2024 LT (Now ) - PHPerKaigi 20 2 4 LT - PHP 小 田 2024 - PHP 香 2024 - PHP 2024 2
!! - @seike 4 60 - Fusic - PHPerKaigi
3
Agenda 1 . 2 . 3 . 4 . 4
01
None
用 - Web - DB - c 5 .large
vCPU 2 4 GiB 20GiB 7
02
ISUCON 12 ISUCON 12 PHP ISUCON 大 自 9
03
phpspy phpspy 11
方 pgrep phpspy 用 12 $ ./phpspy
-b 81 920 --limit= 1 00 0 0 --pid=$(pgrep -n php-fpm) > traces $ ./stackcollapse-phpspy.pl <traces | ./vendor/flamegraph.pl >flame.svg
04
PHP 入 14 SCORE: 13 27 (+ 132 7 0
( 0 %))
DB Web DB 行 用 Web DB 15
DB PHP 入 Web DB 16 SCORE: 13 27 (+
132 7 0 ( 0 %)) SCORE: 14 69 (+ 146 9 0 ( 0 %))
htop htop 17
DB DB MySQL innodb_buffer_pool_size innodb_log_file_size innodb_flush_log_at_trx_commit innodb_flush_method table_open_cache thread_cache_size max_connections
18
DB PHP 入 Web DB DB 19 SCORE: 13 27
(+ 132 7 0 ( 0 %)) SCORE: 14 69 (+ 146 9 0 ( 0 %)) SCORE: 16 95 (+ 169 5 0 ( 0 %))
Index DB Index pt-query-digest 用 20 ALTER TABLE visit_history DROP
INDEX tenant_id_idx; ALTER TABLE visit_history ADD INDEX tenant_id_idx(tenant_id, competition_id, player_id, created_at);
Index PHP 入 Web DB DB Index 21 SCORE: 13
27 (+ 132 7 0 ( 0 %)) SCORE: 14 69 (+ 146 9 0 ( 0 %)) SCORE: 16 95 (+ 169 5 0 ( 0 %)) SCORE: 18 67 (+ 186 7 0 ( 0 %))
N+ 1 22 MySQL App\Isuports\Handlers::playerHandler N+ 1 行
N+ 1 PHP 入 Web DB DB Index N+ 1
23 SCORE: 13 27 (+ 132 7 0 ( 0 %)) SCORE: 14 69 (+ 146 9 0 ( 0 %)) SCORE: 16 95 (+ 169 5 0 ( 0 %)) SCORE: 18 67 (+ 186 7 0 ( 0 %)) SCORE: 24 33 (+ 243 3 0 ( 0 %))
Nginx - worker_processes -> auto - worker_connections - keepalive_timeout 入
gzip gzip_vary gzip_proxied gzip_comp_level gzip_buffers gzip_http_version 24
php-fpm 25 Fork Process Process - pm.max_children - pm.start_servers -
pm.min_spare_servers - pm.max_spare_servers - rlimit_files
php-fpm 26 OPcache PHP 8 目玉 JIT PHP 入 OPcache
opcache.enable JIT opcache.jit opcache.jit_buffer_size opcache.max_accelerated_files opcache.memory_consumption opcache.validate_timestamps XDebug
OS OS 大 ⾒ ulimit 大
net.core.somaxconn vm.swappiness fs.file-max 27
Nginx + php-fpm + OS PHP 入 Web DB DB
Index N+ 1 Nginx + php-fpm + OS 28 SCORE: 13 27 (+ 132 7 0 ( 0 %)) SCORE: 14 69 (+ 146 9 0 ( 0 %)) SCORE: 16 95 (+ 169 5 0 ( 0 %)) SCORE: 18 67 (+ 186 7 0 ( 0 %)) SCORE: 24 33 (+ 243 3 0 ( 0 %)) SCORE: 30 12 (+ 301 2 0 ( 0 %))
見 立 用 大 手 大 自 29
見 30 PHP https://speakerdeck.com/seike 4 6 0 /php-web-application-performance-tuning
Thank You We are Hiring ! https://recruit.fusic.co.jp/