Slide 1

Slide 1 text

ISUCONにPHPで挑み続けて できるようになっ(てき)たこと PHPerKaigi 2025 2025.03.23 Yuta Ohashi

Slide 2

Slide 2 text

青ごへいもち / @blue_goheimochi 大橋 佑太 株式会社リンケージ ランニング, サッカー, フットサル, キャンプ 浜松まつり, PUBG MOBILE, けん玉 さわやかのげんこつハンバーグ おおはし ゆうた

Slide 3

Slide 3 text

ISUCONに

Slide 4

Slide 4 text

参加すること

Slide 5

Slide 5 text

8回!

Slide 6

Slide 6 text

8回! チームメンバーもずっと同じ

Slide 7

Slide 7 text

7 ISUCON 過去の成績(参考順位) • 2017年 - • 2018年 - • 2019年 - • 2020年 - • 2021年 - • 2022年 - • 2023年 - • 2024年 -

Slide 8

Slide 8 text

8 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - • 2019年 - • 2020年 - • 2021年 - • 2022年 - • 2023年 - • 2024年 -

Slide 9

Slide 9 text

9 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - • 2020年 - • 2021年 - • 2022年 - • 2023年 - • 2024年 -

Slide 10

Slide 10 text

10 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - • 2021年 - • 2022年 - • 2023年 - • 2024年 -

Slide 11

Slide 11 text

11 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - • 2022年 - • 2023年 - • 2024年 -

Slide 12

Slide 12 text

12 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - • 2023年 - • 2024年 -

Slide 13

Slide 13 text

13 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - ISUCON12 予選( 142位 / 698組 ) • 2023年 - • 2024年 -

Slide 14

Slide 14 text

14 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - ISUCON12 予選( 142位 / 698組 ) • 2023年 - ISUCON13( Fail / 694組 ) • 2024年 -

Slide 15

Slide 15 text

非常に芳しくない ように感じてた

Slide 16

Slide 16 text

自分は

Slide 17

Slide 17 text

自分は 成長

Slide 18

Slide 18 text

自分は 成長 できているのか…??

Slide 19

Slide 19 text

不安

Slide 20

Slide 20 text

不安 不安

Slide 21

Slide 21 text

不安 不安

Slide 22

Slide 22 text

不安 不安

Slide 23

Slide 23 text

不安 不安

Slide 24

Slide 24 text

何事も 思うような結果が 出ないと 「不安」は感じる

Slide 25

Slide 25 text

25 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - ISUCON12 予選( 142位 / 698組 ) • 2023年 - ISUCON13( Fail / 694組 ) • 2024年 - ISUCON14( 73位 / 834組 )

Slide 26

Slide 26 text

26 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - ISUCON12 予選( 142位 / 698組 ) • 2023年 - ISUCON13( Fail / 694組 ) • 2024年 - ISUCON14( 73位 / 834組 )← PHPのチームでは2位…!

Slide 27

Slide 27 text

27 ISUCON 過去の成績(参考順位) • 2017年 - ISUCON7 予選( Fail / 407組 ) • 2018年 - ISUCON8 予選( Fail / 528組 ) • 2019年 - ISUCON9 予選( 145位 / 598組 ) • 2020年 - ISUCON10 予選( 149位 / 490組 ) • 2021年 - ISUCON11 予選( 163位 / 598組 ) • 2022年 - ISUCON12 予選( 142位 / 698組 ) • 2023年 - ISUCON13( Fail / 694組 ) • 2024年 - ISUCON14( 73位 / 834組 )← PHPのチームでは2位…! PHP1位のチームとは ダブルスコアの差

Slide 28

Slide 28 text

28 目次 •できるようになっ(てき)たこと •「できる」を感じたポイント •どう成長を捉えていくとよいか? •まとめ

Slide 29

Slide 29 text

29 ISUCONってなに??

Slide 30

Slide 30 text

30 ISUCONってなに??

Slide 31

Slide 31 text

できるようになっ(てき)たこと

Slide 32

Slide 32 text

32 できるようになっ(てき)たこと • 準備 • 各サーバーにansibleで共通設定をいれる • GitHubへのコード・設定のバックアップの自動化 • ボトルネック特定 • NGINXのログの設定 – アクセスログからボトルネックをみる • MySQLのスローログの設定 – pt-query-digestなどでボトルネックをみる • 改善 • インデックスを貼る • アプリケーションサーバーとデータベースサーバーを分ける • 画像のキャッシュが効くようにする • opcacheの設定をする • preloadの設定をする • その他 • 素振りの環境をterraformで構築 • などなど

Slide 33

Slide 33 text

33 できるようになっ(てき)たこと ボトルネックの特定はできるようになってきているなという実感 • Before • 最初は本当に「何から手をつければ…」という状態だった • 「チューニングしたけど、ちゃんと改善されているのかも分からな い」 • After • 「このログのここを見ればよい」が分かってきている • 「チューニングに自信がもてる」状態が増えてきている

Slide 34

Slide 34 text

34 できるようになっ(てき)たこと ボトルネックの特定はできるようになってきているなという実感 • Before • 最初は本当に「何から手をつければ…」という状態だった • 「チューニングしたけど、ちゃんと改善されているのかも分からな い」 • After • 「このログのここを見ればよい」が分かってきている • 「チューニングに自信がもてる」状態が増えてきている

Slide 35

Slide 35 text

35 できるようになっ(てき)たこと 「チューニングに自信が持てる」状態が増えてきている • 一定、ISUCON文脈ではあるが… • ≒「推測するな、計測せよ」が意識できるようになってきている • 計測 → ボトルネックの特定 → 判断 → 改善 • 特に「判断」の精度が上がってきた感触がある • こういう傾向であれば、preloadの設定が効くだろうのような判断 • 闇雲な手ではなく、可能性の高い手を複数持つ・選択する意識

Slide 36

Slide 36 text

「できる」を感じたポイント

Slide 37

Slide 37 text

37 「できる」を感じたポイント ISUCON13の苦い記憶のアウトプット

Slide 38

Slide 38 text

38 「できる」を感じたポイント 「できる」にはグラデーションがあると認識した • 「できる」は 0 or 1 ではない • 「ここまではできている、ここまではできていない」 • 自分自身で(目標に対して)「できない」と「できる」の境目 を意識できているか?

Slide 39

Slide 39 text

どう成長を捉えていくとよいか?

Slide 40

Slide 40 text

40 どう成長を捉えていくとよいか? 「できること」「できないこと」を認識する・認める • 「できないことはダメなことだ」という想いが強かった • 「できること」「できないこと」をちゃんと認識することが必要 • 「ここまではできている」と思えると「じゃあそこからどうす る?」を考えやすくなる • 「できない」は「不安」は消えないが、認識できてれば自分自身でコ ントロールできていると考えて良い • 「できない」を一定ポジティブに捉えられる

Slide 41

Slide 41 text

刻むんだ

Slide 42

Slide 42 text

その行動を 努力と呼ぶ

Slide 43

Slide 43 text

逆も大事

Slide 44

Slide 44 text

自分が登れた 小さいステップを 認識する

Slide 45

Slide 45 text

努力できた行動を 自分自身で認める (メタ認知)

Slide 46

Slide 46 text

まとめ

Slide 47

Slide 47 text

47 まとめ • ISUCONにPHPで挑み続けてできるようにな(って)きたこと • PHP…あんまり…関係なかったですが…(マインド寄り) • できるようになってきたことは実は色々あった • 自分で「できた」を意識し「できない」もまた意識する • それにより、ここまでの「成長」とここからの「成長」をより意 識できるんじゃないかなと思っています

Slide 48

Slide 48 text

48 まとめ • PHPerKaigiでさまざまなトークを聞いたり、人と話して、 • 「ここはできてるな」「ここはできてないな」が少なからず心の 中に生まれたんじゃないかなと思います

Slide 49

Slide 49 text

49 まとめ • PHPerKaigiでさまざまなトークを聞いたり、人と話して、 • 「ここはできてるな」「ここはできてないな」が少なからず心の 中に生まれたんじゃないかなと思います • そう、「成長」の準備はできている!

Slide 50

Slide 50 text

明日からも 「成長」していくぞ !!!!!1