1. ツナギメエフエム
  2. Ep.12 sji( @sji_ch )さん、な..

・今回のゲスト

 ・sji ( @sji_ch )さん

 ・ななうぇぶ ( @77web )さん

・ISUCON12ふりかえり回

 ・ISUCON公式Blog

  ・ISUCON12 まとめ

 ・ISUCONの参加経験は?

 ・チームのメンバー構成、役割分担は?

  ・そーだいさん(第7回のゲスト)から「ISUCONとか興味ないですか?」と誘われてた

 ・言語は何を選択しましたか?

 ・分業はうまくやれましたか?

 ・SQLiteをどのように対処しました?

 ・排他処理のためのflockはどのように対処しました?

 ・CSVファイルの読み込みについてはどのように対処しました?

 ・一意IDの発行はどのように対処しました?

 ・Docker Composeはどのように対処しましたか?

 ・初回のベンチを実行したときにどう思いましたか?

 ・最終スコアは?

 ・OPcacheがOFFだったことにはすぐに気づけましたか?

 ・設定周りではどんなことを対応しました?

 ・3台のサーバーをどのように構成変更しました?

 ・visit_historyの不要行はどのように対応しましたか?

 ・プロファイラは何を使いましたか?

 ・リモートのコミュニケーションはどのように行いました?

Code Polaris

 ・女性のエンジニアが抱える悩みを解消したい――性差のないエンジニア社会を目指す「Code Polaris」とは?

 ・【大平かづみ×ちょまど】女性の少ない“エンジニアの世界”を変えたい。女性限定技術コミュニティー『Code Polaris』の可能性

 ・目指すのは女性エンジニアが安心できる場所 「がんばりたいのにつらい」をなくすために

 ・【ECDW】Code Polaris座談会女性エンジニアの悩みを語り合おう

PHP Conference Japan 2022

 ・sjiさんのプロポーザル

  ・導入から 10 年、PHP の trait は滅びるべきなのか ーーその適切な使いどころと弱点、将来について

 ・ななうぇぶさんのプロポーザル

  ・Naming of classes 〜クラスに名前をつけるのは難しい〜

  ・結局、ドメイン駆動設計とは何なのか?何でないのか? 〜DDD Demystified〜

  ・フラットなPHPからオブジェクト指向で自動テストのあるPHPへ、そしてフレームワークへ

 ・アカセのプロポーザル

  ・FQDN(ドメイン名)のバリデーションが意外と面倒だった

・各地のPHPカンファレンスについて

 ・PHPカンファレンス仙台の開催は? 

 ・PHPカンファレンス名古屋の開催は? 

  ・PHPカンファレンス名古屋のGitHubリポジトリ

  ・PHPカンファレンス名古屋のTwitterアカウント

 ・PHPカンファレンス福岡の開催は? 

WEB+DB PRESSで「PHPで複雑さに立ち向かう」という記事を連載中です


--- Send in a voice message: https://podcasters.spotify.com/pod/show/tsunagimefm/message
00:05
はい始まりました、tsunagimefmの第12回です。
tsunagimefmは勉強会、コミュニティ繋がりの方々をゲストに迎えて雑談するポッドキャストです。
まずはツイッターのハッシュタグについてお知らせです。
ハッシュタグはカタカナでtsunagimefmです。ツイートをお待ちしています。
今回で第12回目です。
今日のゲストは、いがらしさんと7webさんです。
まずは、いがらしさんから自己紹介をお願いします。
はい、株式会社インフィニットループのいがらしと申します。
普段はスマートフォンゲームのサーバーサイドのプログラムを作っております。よろしくお願いします。
はい、よろしくお願いします。では続いて7webさんお願いします。
はい、カルテッドコミュニケーションズの開発部で働いています7webと言います。
本業はカルテッドコミュニケーションズなんですけど、副業で他2社ほどでお仕事をしています。
先ほどつい3社目を決めたばかりみたいな感じで幅広くPHPを書いています。よろしくお願いします。
はい、よろしくお願いします。
今日はどうもありがとうございます。
めっちゃ無茶振りなDMをお二人に送って快楽してもらって。
そんな無茶振りでしたっけ?
本当に良かったんですか?
そんな無茶振りだと言われたらちょっと不安な気持ちになってきちゃったんですけど。
安受けしすぎただろうかって。
今日お二人をお呼びしたのはですね、イスコンの話をしようと思ってつい最近会ったので。
あれいつでしたっけ?7月の23日でしたね。
23日土曜日にイスコン12の予選があって、僕らのチームは敗退したわけですが。
僕らのチームは敗退しました。
うちも敗退してます。
みんな負けてる。
その辺りの話を聞いていきたいなと思うんですけど。
ちょっとおつやみみたいな話になっちゃった。
僕らのチームっていうか初参加だったんですけど、お二人ってどんな感じなんですか?
私のチームも初参加でした。
そうなんですね。ななめぐさんのとこは?
私自身初参加なんですけど、今回元々の知り合いじゃない人といきなりチームを組んだので。
その中に去年も参加したっていう人が一人いる状態の。
私自身は完全初参加でした。
チームは何人構成だったんですかね?お二人のチームは。
私のところは2人でしたね。
2人だったんですね。
03:02
ななめぐさんのとこは?
うちは3人チームでした。
うちも3人ですね。
メンバーのチーム編成というか役割分担みたいなのってありました?
役割分担あんまり考えてはなかったんですけども、私がわりとPHPの設定と、
思いつくところを頑張る担当で、もう一人がインフラ中心に整備していただいて、
そっちはそっちで思いついたところを頑張る担当って感じでしたね。
なるほど、2人で思いついて頑張る感じなんですね。
そんな感じでしたね。
僕らのチームは一応僕がインフラというか設定周りを見ようみたいな話をしてて、
残りの2人で行動を中心に見ようっていう編成だったんですよ。
ななめぐさんとかどうでした?
ちょっと話は長いんですけど、
私のチームって実は私以外職業エンジニアじゃない2人と組んでまして、
1年くらい前からやってるコードプラリスっていう女性エンジニアのオンラインコミュニティがあるんですけれども、
たまたまそこの中でメンバー募集っていうのがあって、
そもそも私4月にペチパー会議の時点で、
総代さんにイスコンとか興味ないですかって言われて、
ないです!ってソフト話してたんですけど。
いいですね。
たまたまコードプラリス内で出たい人っていう募集を見かけて、
つい勢いで出ますって言ってしまって。
総代さん出てましたよ。
めちゃめちゃ面白いじゃないですか。
総代さんを蹴って出たわけですね。
組んだ2人は当然女性なんですけど、
1人は学生の方で、もう1人はエンジニア目指して今勉強中の方。
しかもPHPじゃないっていう。
言語はPHPでやったんですか?
Pythonで行きました。
残り2人が強プロとかでちょっとPythonやってますって言ってたんで、
じゃあいけるかなと思って。
私があまりにもPythonを忘れていすぎて何も役に立たなかった。
Pythonの経験も元々あるんですね。
すごい昔にDjangoの、
私がTwitter始めた頃にDjangoの人にいろいろTwitterで質問しまくってプログラミングを覚えたみたいな感じなので、
06:09
昔Djangoを使ってSNSを開発したことがあって、
ちょっとなくなっちゃったんですけど、
PHPの前はそっちをやってました。
なので今回はPythonだったんですね。
行けるかなと私も、じゃあPythonなら行けますって言ったんですけど、
あまりにも忘れていすぎて何もできませんでした。
うちは3人ともPHPの経験があったんで、
PHPでいいよねっていう感じでやった感じなんですけど、
イグナスさんのところはどうでしたか?
私のところもPHPで、
イグナスさんが講座担当か。
一応会社の人を誘ったんですけども、
そっちも使ってはいるので、
本人はPHPそんなに自信なそうでしたけど。
イグナスさんのところはあえて2人だったんですか?
いや、声をかけたらホイホイ連れたのが1人で、
もっと頑張ったらもう1人連れたかもしれないんですけれども、
そんな頑張らなかったんですか?
そんな頑張っていいかなと思って。
ちょっと冷やかしに出てくるような感じだしなみたいな感じで思ってたら、
出てみたら意外となんか、
もうちょっといけたかもみたいな感じになっちゃったんで、
やっぱりもう1人誘った方が良かったなと思いました。
どうですか?
2人3人でやってみて、
分業とか上手いこといけた感じですか?
上手いことやったかどうかは分からないんですけど、
誘った人はすごい良い感じに働いてくれたのは間違いないので、
良かったなと思いました。
当日の朝になって、
ちなみに全然つぶりとかやってないですけど、
私もですよ。
僕さっき一応インフラって言ったんですけど、
もともと僕はウェブアプリケーションエンジニアでPHPを書いてたんで、
どうしてもPHP読みたくなるというか、
読んじゃったんですけど、
僕は読むべきじゃなかったなと思って。
なるほど。
そこがすごい失敗だったなと思って、
インフラだったらインフラに専念した方が良かったなってちょっと思ってますね。
その辺りが上手いこと分業ができずに、
3人ともコード見て、
3人とも同じとこ見てるみたいなことをすごいやってて、
ボトルネックって分かりやすくボトルネックのところって、
出てくるじゃないですか、すぐ。
3人とも同じとこ見てて、
どうしようって3人で腕組んでみたいな感じになってたんで、
よりも、
ちゃんとインフラ周りの設定とかを先に見るべきポイントを見て、
やってれば良かったなって思うんですけど、
なんかそういう感じのところでありましたか?
09:01
どうでした?
どうでしたね?
どういう感じか分かんなかったんで、
とりあえずオープニング動画なんかがめっちゃ気合い入ってるなって思って、
まずそこから始まるじゃないですか。
そっか。ゆらさんは初参加。
イスコンの曲流れてるの、あれイスコンの曲だって言ってたけど、
なんか思いっきり聞こえないのにキラキラとやってて、
なんかはしゃいでたら始まったっていう。
初参加で、最初ああいう動画とか見て、
レギュレーションだったりマニュアルとか見て、
最初にこれはやれそうだって思いました。
いや、分かんないなって感じでしたね。
分かんないなんですか?
分かんないなーって感じだけど、
見てる限りではこれひょっとしてあんまり仕事が変わんないんじゃないかみたいな感じになって、
途中からですね。
最後に終わった時の感想はですね、これ仕事だったなって。
名前さん的にはどうですか?
一人が去年参加された勉強中の方が、
インフラでやりますとやりたいですっておっしゃったので、
エンジンXとかその辺はじゃあ任せますわって言って、
私はとりあえずSQLを見ますねって言ったんですけど、
まさかのSQLiteにやられてるうちに、
気づいたら5時間くらい浪費しているみたいな。
分かる。
まさかのDBエンジンが2つでしたからね。
スポンサーに確かオラクルさんかなんかが付いてるんで、
多分DBはSQLだろうみたいなメタ的な予想を立てて、
MySQLの予習をしていったんですけど、全て打ち砕かれました。
なんかコードミスしたら、
こいつはSQLiteをエグゼクしてるぞって言ってですね。
これあれだなって、
ランタイムでとりあえずテーブル作ってるってことであれだなって、
ティアントローデータベースを各ウェブサーバーの方で
サインでもってんだなって。
これめんどくせーって思いながら。
MySQLだったら簡単に分散できるけど、
このファイルこのサーバーにしかないんだよなみたいな。
これ分散させようとしたらどうしようかなみたいな。
そのSQLiteが各テナントのデータになってたわけですけど、
やつらはどう駆逐しましたか?
駆逐しませんでしたよ。
私もMySQLにちょっと諦めて、
SQLiteのままインデックスとかを上手いことシェルから
貼る方法を探している5時間でした。
全くSQLiteの移行は手もつけなかった感じですかね?
もうこれはやめといてって感じですか?
手が回らなかったですね。
やらなきゃどうにもならない気がしたんだけれども、
12:01
ひょっとするとやってる途中で、
エンジンXの段階で各テナントのアクセス、
振り分けるというのができたら、
テナント用のデータベースしかSQLiteで持ってないので、
共通のデータはMySQL側にあるから、
そうするとリクエストの段階でうまく、
エンジンXの段階でシャーディングができれば、
ただ単純に複数のサーバーに分散させるだけでいけるなと思いながら、
その設定が具体的に思いつかないまま最後までいったって感じですね。
最後の公表みたいな解説出てきたら、
方向がいくつかやってる人が見つかって。
ですよね。
なるほど。
うちのチームはメンバーの一人が、
徐々に移行してみようかっていう話をして、
いくつかテーブルがあったじゃないですか、SQLiteも。
これだけ先にいけるんじゃないっていう、
一番ボトルネックに当てた重たいそうなところから、
このテーブルだけやってみようかって移行したんですけど、
仕掛けてたのかな?
そうして、うまくいきそうではあったんですよ。
でも、そのSQLiteからMySQLに移行したテーブルがですね、
Nプラス1になってて、
ちょうど。
で、これどうする?って。
しかも別にエラーも出て、
うまいこと移行できないねって話になる。
で、泣く泣くMySQLに移行しかけてたんですけど、
SQLiteに戻して、
SQLiteのNプラス1を対応してみたいなことをやったのが、
記憶してます。
で、そうですね。
だからSQLite側で、
うちもインデックス貼ったりなんだりやってた感じです。
あとSQLiteで特徴的だったのは、
トランザクションじゃなくて、
フロップになってた。
手が広いです。
あれ、どうしました?
いや、何だこれって思いながら、
しばらく手つけなかったんですよ。
しかもめっちゃあったじゃないですか。
見えてるんですけど、
とりあえず始まってから何やるかって言ったら、
とりあえず計測できないと進まないから、
とりあえずニューリティック入れるじゃないですか。
読み合わせしながら、
そのインフラ担当の方に、
ニューリティック、
イスコン用にただで使えるやつあるらしいんで、
これお願いしていいですかって。
で、向こうで設定やってくれてる間に、
別々マニュアル読み上げしていくじゃないですか。
ニューリティックで計測を始めて、
よし、なんかすげー重いやつだからこれ直すぞってやっていくと、
やっぱり途中でFロックが出てくるんですよ。
めっちゃFロックで待ってるってなってるんですね。
これ何とかしたらいいんだけど、
何とか直さないといけない。
よく見てよく見て、
これ読み込み専用じゃねーかみたいなんですね。
読み込みしてないとこで何でロックしてるんだこいつってなってるんですね。
15:02
とりあえずコード見ないで確実に直せるのは、
共有ロックにする。
共有ロックにしてみた。
共有ロックにしてみたけどあんまり変わんない。
ていうかこれ、
ていうかこれそもそも、
いらないよなこのロックみたいな感じですね。
読み込み専用のところこのロックいらねーよなってなってるんですね。
年を外したらですね、
あそこがグンと伸びてる感じですね。
何もしなかったってことですか?
そのFロックの部分だけ外して?
外すっていうのはやめましたね。
確実に外せる読み込みだけのところ外しましたよね。
ああなるほど。
見つかってるところはそのまま最後まで残してたんですけども。
ああそういう、なるほどなるほど。
そういうことですね。
多分あれも直せば直せたんだろうなーって感じですね。
あれはSQLに何か再行するんですかね?
書き込み側のFロックの方は。
あれはトランザクションに直すが多分簡単なんだと思います。
テナントIDでFロック取ってたので、
テナントを丸ごとで確実にロック取っちゃうけど、
多分そのロックの範囲だと広すぎるんですね。
性能的にもおそらくあんまり良くないけれども、
SQLiteの機能でトランザクションしたらロックもちょっと軽く来る。
SQLiteの機能でですよね。
そっちの方が多分良かったんだろうなーって感じがしますね。
もしかするとテナントIDよりも細かい範囲でロックのキー変えたりすると、
ロックの入力が細かくなってもしかしたらもっと行けたのかもしれないですけど、
ヘルスを上げることができたのかもしれないですけど、
それはちょっと試してないのでわからないですね。
GYFロック、手付かずというか手付けてなかったというのが正直なところなんですけど、
七尾ゆうさんのところどうしました?
実は何もできなかったんですけど、その理由がめっちゃ情けなくて、
さっきも言ったように私、Pythonを何一つ覚えてなかったので、
Pythonではこれしないといけないのかなぐらいな感じで。
そこでPHPのコードを参考に読めば、
いやこれいらんやろうって気付けたのかもしれないんですけど、
愚直にPythonだからこれがないといけないのかなみたいなことを考えているうちに時間が過ぎました。
問題がいじわるっちゃいじわるですよね。
参考実装をどっちも読むのは辛いですもんね。そんな余裕はないですしね。
終わってからPHP読んだら、いやこれ外せたなって気付いたので、しまった。
あの中にコードは全部あるので読もうと読めるんですけど、
やってる時にはそんな余裕は全然なかったですね。
コークリックすると時間が過ぎていく。
Fロックはやばかったですね。
びっくりしました。
でもあれ?こんな書かないとダメなんだっけって思っちゃって。
そうなんですよ。
こうしなきゃいけないのかって気持ちになってくるんですよ。
そうなんですよ。
トランザクションじゃんってならないんですよね。
18:02
ファンにちょっとうっかりした人が書いただけっていう裏設定だったってひどいよね。
あのストーリーを読むとなるほどな、意地悪だなって思うんですけど、
焦りますよね。
焦るというか、そういう理解にならないというか。
生きる勇気をちょっともらったかもしれないですね。
しょうもないことですもん、堂々としてば大丈夫みたいなですね。
あんなコードでも。
すげた人生どうにかなるみたいな。
結構みんな騙されるから大丈夫みたいな。
悔しいことにあれ動いてますからね。
遅いっちゃうだけで。
ちゃんと動いてるから。
そうそうちゃんと動いてるんですよね。
遅いだけなんですよね。
最初の動画でCSVデータを読み込んでどうのこうのみたいなのが確か動画の中に出てきたと思うんですけど、
コードの中にも実際CSVファイルの読み込みあったと思うんですけど、
あそこって手付けました?
あそこは手付けなかったですね。
たぶん時間あったら次に手付けすればなってことですね。
うちも手付けなかったんですよっていうのが、さっき言ったところでも手一杯ではあったんですけど。
CSVのとこってなにむさんどう思うでした?
うちは本当に何も手を付けられてなくて、コードほぼまともに触れてなくて。
僕も読んじゃったから見てるんですけど。
あれは割と慣れてる道具使う前提でやらないと、多分噂をしてるだけで終わっちゃいますよね。
本当ですよ。
明日から始めると夕方になっちゃうみたいな感じになりますよね。
本当そうですよ。
あと重たい処理でもう一個特徴できちゃったのが、
IDを一番でかいIDを返すやつがあったじゃないですか。
ユニークID返しですよね。
そうそう。あれどうしましたか?
あれ一番最初に見つけたんですよね。
これ重いよなって。
そうそう。プロファイラーかけるとあいつ重くて、最初これだろうみたいな感じだったんですけど。
見てるとこれユニークID発行しただけだよなって。
これ何もデータベース使いそうじゃないじゃんって。
あれ数値じゃなくても良さそうってすぐ気づきました?
そうですね。あれがULIDっぽいの出せば大丈夫だろうなと。
僕は最初これ数値じゃないとダメなのかな。
代償比較してるっぽいなみたいなのを思って読んでたんですけど、
別のメンバーがこれ多分ULIDでいけるよって書いてくれたんですけど、
僕にはもうすげえなって思ったんですけど。
そういった感じで直しましたか?
そうですね。PCPでULID取ってくるライブラリでこれで良いかなって。
21:03
同じだ。
PCP8.1で動く動くきっといけるって。動かなかったらどうしようって。
七宮さんとこのチームはどうでしたか?
例によってPythonで録音しないといけないのかなって。
もうほんとバカって感じですけど。
何もわからん人の気持ちね。
でも面数的にはあれですよね。
ここでPCP選んでると残り2位がわからんかもしれないですよね。
そうですね。
重いのはわかってるけど、
僕もさっき言ったようにこれ数字じゃないとダメかなぐらいの感じだったので。
あれなんですよね。
参加の規約みたいなやつでIDは変えてもいいみたいなのがあったんですよね。
本当ですか。
Q&Aが確かありまして。
そうですね。Q&Aでも出てましたね。
もともとが16人の数値なので文字の範囲が0から9までと、
あとAからFまでの範囲しかないけれども、
ULIDとかUUIDにしちゃうと他の文字種も入っちゃうけれども、
規約の方には文字種を変えない範囲でって書いてあるけど、
この修正大丈夫ですかって質問が確かでてたんで。
なるほど。そんなのがあったんですね。
確か大丈夫って話だったんですよね。
そう言ってましたね。回答で。
そっかそっか。
最初にインフラ周りの整備というかセットアップにすごい時間かかっちゃってたんで、
マニュアルやらそういうQ&Aを読み込む時間が全くなくてですね。
後からそこ見てこれこれつって追いついて、
マニュアル読まない状態でそこ読んで、これ数字じゃなくていいの?っていう感じも。
あれだったんですよね。始まるまで競技の中身のことはわからないけれども、
もしかすると始める前から見えるこの参加規約みたいなところに何かヒントがないかなとか思って。
そっかそっかそっか。
いつかのブログのやつ見たんですよね。
はいはいはい。
で、ニューレリックさんが僕らに貸してくれるらしいとかですね。
こういう規約なんだみたいな、こういうルールなんだみたいな。
ニューレリック僕らも入れたんですけど、
アプリケーションのなんかやつって入れました?
APM?
そうそうそうそう。あれも入れました?
はい。APM入れるとちょっと厳しいんで。
ですよね。
僕らAPMまで入れてなかったのかな。
そっかそっか。
24:01
なるほど。
そこまでやっぱ入れないと意味ないですもんね。
そうですね。
あれってでもPHPのコードで手入れなくていいんですか?
PHPのコードは手入れなくて大丈夫です。
あ、そうなんだ。
コードは手入れなくて大丈夫ですが、
PHPの拡張を入れないといけないので、
そこは設定しないといけないですね。
あのDockerだったじゃないですか、環境。
はいはいはい。
Dockerで本番環境でしたので、
そのDockerファイルの方にニューレリックの拡張を突っ込むような記事を出さないといけない。
そこをやれなかったのが多分僕の…。
そっか。
それが私の仕事だったな。
なるほど。
設定周り本当に見れてなくて。
ニューレリックも多分使ったことない人がわからないと思うんですね。
ですね。
私も使ったことないので、
入れたはいいけど見方がわからないうちに時間を。
練習をもうちょっとしておけばよかったなって本当に思いましたね。
設定周りについても。
APMを入れるとプロファイラーが付いてくるんですよ。
うんうんうん。
遅いやつが勝手にコールドライブを保存してくれて、
どこが一番時間かかってますみたいなのが一発で分かるようになるので。
なのであれをとりあえず、ニューレリック使えるんだったらとりあえず入れると楽ですね。
はいはい。
他のいろんなツールも入れなくていいんで。
Dockerは困りませんでしたか?
PHPって変更したらすぐ反映されるじゃないですか。
でもあのDockerのせいで、
Dockerリスタートしないと反映しなくなかったですか?
そこはあれですね。
インフラ側担当してくれたイケメンがですね。
これデプロイではいいですねって言ったらですね。
なんかシェルスクリプトでですね。
いい感じにですね。
内容をR-Syncで突っ込んで、
そのままシステムコントロールでDockerを叩き直してくれるっていう。
素晴らしい。
それ分かってたんだけど、
そこまでシュッてやれてなくて。
それで何回かやっちゃったんですよ。
普通そんなにシュッてやれないですよね。
一緒にやってくれる人がだいぶ良かった。
俺デプロイしたのに反映されないっすねって言って。
で、タイプをしててデプロイしたコードに。
エラーになってたんですよ本当は。
でもリスタートかけた瞬間にそのタイプが顕在化して、
俺このPHP動かないってなって。
それで何回かハマるみたいなことがあって。
あとリスタートかけずにベンチを回して、
あれ点数上がんないねみたいなことが何回かあって。
7FさんのチームはDockerのほうって、
Pythonも一緒ですよね。
多分ですけど、PHPだとFPMでしたよ。
PythonのやつはPythonメインPYだったので、
再起動しないとダメだろうなっていうのが
27:00
Dockerファイル見た時点で分かったので、
とりあえず毎回手元のメモ帳に常に開いといて、
いつでもシュッと実行できるようにして。
それはちゃんとやれてるのが偉いっすね。
PHPだとアップロードしたらもう動くみたいなのに
ちょっと感覚が慣れすぎて。
そうそう、それなんですよ。
それに慣れすぎてて、もうすぐ動かしたくなるじゃないですか。
あれDocker環境を外したって
ベアメーカーのメモ帳に書いてるんですか?
メモ帳に書いてるんですよ。
メモ帳に書いてるんですか?
メモ帳に書いてるんです。
メモ帳に書いてるんですか?
Docker環境を外したって
ベアメタルの状態で動かすように変えちゃったって
チーム結構多かったみたいですね。
いましたね。
僕もなるほどなって思いました。
あれは賢いっすよ。
それをシュッとやれるチームはやっぱ素晴らしいなと思って。
そこまで思い足らなかった。
TCPの場合のFPMはDockerだったんですけども
今回の環境はエンジンXのほうはベアメタルに入ってたんで
そうするとあれなんですよね
Linuxダメージソケットで繋げるのがどうしないのかちょっと分からない感じになっちゃったんで
あれ全部Dockerかベアメタルに移したほうが良かったなって後から思いました。
そうっすね。
TCPで成熟になってたんでちょっと遅いんだよなみたいな。
ちょっと損したので。
あとPHPって最初にベンチ回したら確か1000点弱だったんですけど
あれひどかったですね。
あれひどかったじゃないですか。GOで回すと3000点くらいだったでしょ。
とりあえずGOで回すじゃないですか。2600とかで出るじゃないですか。
PHP出したら1200とかで出るっていうですね。
僕ら回した時980とか出てきてうっそやろって言って
Pythonって何点だったんですか最初。
Pythonが1500点くらいでした。
ほらほらPHPやっぱひどいんだ。
でもそれもしかして1番で回してないですか。1番のサーバーそれ一つだけすごい遅くなかったですね。
なるほどそんな話が。
そうなんすか。
うちの1500は2番のサーバーの性能なんですよ。
なるほど性能差があったんですね。
それぞれで確認はしてなかったですね。
すごい後半になって2と3を連携させてMySQLを片っぽに寄せるっていう実験をしてみようって言った時に
どうしても1番しか開いてないから私がPythonを直したやつを1番で回しますねってやったらすごいガクガクっと落ちちゃって。
原因調べててないんですけど1番だけ性能が悪いっぽいっていうことがようやく15時くらいにようやく分かりました。
30:02
でもなんかそれなんか解説じゃないけどブログ記事書いてる人なんかいたかも。性能差があったみたいな。
なんかツイッターで他にも1番だけ遅かったっていう話してた人がいたので原因調べてないですけど多分そうじゃないかなと思う。
あれは何が遅かったんですかね。スペックじゃないですよね。スペック同じだったはずなんで。
なんか設定がおかしかったんですかね。
なるほどな。そんなのもあったんだな。でも確かに最初に回したのは1番だったかもしれないです。
それで1000点行かないくらい何回かやって1000点行く場合もあるし1000点行かない場合もあるしみたいな感じで。
PHPまじかみたいな状態で始めたんで。
うちのところでしたね。1番で5でベンチ回してるから2番と3番でPHP入れて回してたんで。
あ、そっか。そういうことだったんですね。
それでPHPは千何百は出てたのかな。何も嬉しくないですけど。
最終スコアってちなみに聞いてもいいですか?
最終スコア?最終スコアは1万1300。
1万いったんすか?すご。
1万いきました。なんか知んないけど。
すご。うち4129ですよ。
おお。何の違いなんだろう。
すごいな。
うち2100とかなんですけど。
最初が1500くらいから2119でした。
500積み上げるの相当じゃないですか。
意外と伸びなくて。
最後にすごい効いたなと思ったのがログを切るっていうね。
ログを切るの効きました。
ログを切るの効きますよ。
SQLiteだけログついてませんでした?
SQLiteだけついてたんですか。
Pythonは明らかにSQLiteだけ変なログがついてて、それは初手で切ったんですけど。
うちのチームはサーバー側のログなんだっけ。もちろんプロファイラーとかは切って、Nginxも切ったんだかな。
メンバーはアプリケーションログを切ってくれたんですけど。
とりあえず当日に今日やること実際みたいなのをずっと並べて、最後のところにログを切るって書いてあるんですけど、結局最後にはすっきり忘れてやりませんでした。
もう5時くらいで諦めて、うちもその手順作ってて、最後にこれをやるみたいなのをやってて。
もうやろっかって言って。再起動できなかったらこれはダメだって言って。
33:03
1台ずつログを切り、再起動試験をやりみたいなのをやってましたね。
あれだったんですよね。OPCACHEを有効にすると、Numericのトレースを全部index.phpのアクセスしていってくるようになっちゃって、どこのエンドポイントがトレースなのか区別できなくなっちゃって。
そんな罠あったんですね。
最近頑張ってる間はOPCACHEを外さなきゃダメだろうって言ってですね。
OPCACHEを外した状態でNumeric有効でずっとやってたんですよ。
全然スコア伸びないんですよ。
最後の方で、ようやく4000かそんくらいまでいって、もともとの5のスコアで勝ったというのがですね。
同じこと言ってる。
諦めてNumericさんを外したらOPCACHEを有効にして、最後にベンチ回しますかって言ったら、スコア伸びて。
えーって言ってですね。
じゃあやっぱOPCACHEがすごいってこと?
OPCACHEもすごいんですけれども、Numeric有効にした間は、そのオーバーヘッドもなかなか大きい。
そっかそっかそっか。
多分この合わせ技ですね。
OPCACHEもないとダメだし、Numeric…
OPCACHEがOFFだったのに気づいたのは早かったですか?
それはなんかそうですね。
なるほどね。
途中でいるぐらいには、俺デフォドから入ってないよね。
多分動いてない、多分動いてないって言いながら、
とりあえずPCPインフォを動かそうでって言ってですね。
なるほどね。
PCPインフォが動かないやって言いながら。
まだなんかPCPインフォを動かすだけのために30分ぐらいに使ったら全時間。
動いてるから、よしやっぱり効いてないぞって。
なんか原版によって、そういう設定の罠じゃないけど、
デフォルトで入ってない、でも速度的に上がる設定とかあるんですかね?
PHPはもうわかりやすくOPCACHEがOFFだったんですけど。
どうなんでしょうね。
その辺は他の言語を詳しく知らないので、
例えばPythonでみたいなのがちょっとわからないんですけど。
私もPython何もわからない。
何もわかりませんでした。本当に。
スクリプト言語はなんかありそうですよね。
ありそうですよね。
そういうちょっとした設定だけでギュンって上がるのも。
やらなきゃいけないことは言語としてはそんなに変わらないはずなので。
手の上げるために。
そうですよね。
いや、OPCACHEもうちょっと早く気づきたかったな。
他そういうのなかったですよね。
あとは、OPCACHEの他にはFPMの設定ですね。
FPMの設定なんかやりました?
プールの設定が、確かプロセス5つぐらいしか動かないみたいな設定なので、
36:00
そうするとPHPの設定同時に5つしか動かないっていう風になっちゃうので、
PHPのハンドルのところで詰まっちゃう。
メモリがめちゃくちゃ余ってる、CPMがめちゃくちゃ余ってるので、
じゃあこれFPMとりあえずプロセス50ぐらい増やしていこうかって言ってですね。
5から50に対して増やすじゃないですか。
やっぱり全然余裕なはずだって言って。
回る回る、ちゃう回るって言ってですね。
でもその時はニューリティック有効でOPCACHEも外してるんで、
そんなにスコア上勝手に見えないんですけども。
でも間違いはないはずだって言ってですね。
50、100でもいいかって言ってですね。
別にスコア伸びないけどとりあえず100にして。
落ちもしないからいいかって言って。
データのFPM100にしてこれじゃないですか、プロセス。
で、OPCACHEも余効に後にすればきっと伸びるに違いないって言いながら。
それ、えっと、何ですか?
設定値で言うと具体的にはどれ?
FPMへのプール設定なので、
PMでまずダイナミックってなってるのをとりあえずスタティックにしてですね。
はいはいはい、それはうちもやってるな。
で、スタティックにすると一つだけやらなきゃいけない部分が、
あれですね、MAXチルドレンですかね。
それがいくつですか?
それが5ぐらいだったんですよ最初。
はいはい。
で、これは50とか100とかにしてやるって感じですね。
なるほどね、うちは15とかにしてるな。
なるほど、そのあたりか。
多分これは待ち時間がすごく増えてしまう。
CPUはそんなに回らないようなアプリケーションだったので、
並列がめちゃくちゃ、メモリは許す限り足しまくったほうがいい。
でもあまり増えすぎるのはどうせコア数2つしかないから、そんなに回せないからみたいな。
で、数十とかでいっかなみたいな。数百はいらないだろうなみたいな。
って言いながら、これは僕がやったんじゃないんですけどね。
他のメンバーがやってくれたんですけど。
いやーほんとね、勉強すべきところっていうか、いっぱい反省をさせてくれてよかったなってすごい思ってるんですけど。
もうちょっとやれると思ってたんですよ。
いや、私もですね。
逆になんか。
みんな言うじゃないですか。
思って始めたら意外といけたみたいな感じになって悔しかった。
いやーだいぶいけてますよ。
1万点はちょっとやっぱすごいなと思った。
ほとんど結局1台しか回ってなかったので、マイスケールだけ外に逃がしたんですよ。
どうしました?マイスケールを1台にしたんですか?
はい、マイスケール1台外に逃がしたんですが。
外に逃がすっていうのは?
別のサーバーに置いてPCPのサーバーからアクセスさせるようにしたんですけども。
はいはいはい。
結局マイスケールの方もクエリチューニングしてたらすごい余るようになっちゃって。
仕事ほとんどなくなっちゃって。
39:00
結局1台しかサーバー動いてない状態なんですよ。
PCPのFPMが頑張ってるサーバーしかほとんど仕事してないみたいな感じになっちゃったんで。
3台をどういう構成に変えたってことですかね?
結局1枚完全に余らせてて、遊んでて。
1台はFPMとエンジンX頑張って。
で、もう1台がマイスケール。
3台を上手いこと使ったんじゃなくて、2台でなんとかなっちゃったんですか?
2台の構成になって、1台余ってるし、マイスケールだけ置いてるサーバーもほとんど仕事してない。
なるほど。
だからこれ3台にちゃんと分散させるところまでいけば、スコアが単純に3倍ぐらいになったと考えると、これは予選突破いけたぞって感じになってる。
2台で1万点ですからね。
だからやはりもうちょっと手を立つようにしないとダメだって。
うちは全然マイスケールとか、どのサーモニーとどう映すみたいなことまで一見なかったんですけど、
さっき七夕さんのとこはマイスケールを動かそうとしたみたいなこと言ってましたよね?
そうなんですよ。試したんですけど、私じゃない人が試してくれたので、その結果分かりませんでした、ダメでしたっていうことになって。
2時間ぐらいいろいろやってくれてたんですけど、結局できませんでしたってなって、
私がそれを追試してないので、実際できそうだったかどうかは確認してないんですけど。
なるほど、構成変更も勇気いるし、難しかったですね。
もうちょっと3台をうまいこと活用する感じにしたかったなと思うんですけど。
最後になると、1人だけぱつんとずっとGoのベンチをしたきり動いてないサーバーがいて、
お前をうまく使ってあげられなくてごめんよって思いながら、さよなら言ってこない。
マイスケールの話ですけど、マイスケールに限らないな、SQLiteもそうですけど、
テーブル構造ってどっかいじったりしましたか?隙間変更をやったか否かなんですけど。
一応インデックスあっただけですね。
強強チームになってくるとテーブル構成すら変えることやるじゃないですか、その辺はどうだったかなと思って。
ただあれですね、テーブル構造を変えたっていうのとはちょっと違うんですけども、
ビューヒストリーだったかな、テーブルの中で一つ200万レコードぐらい普通に入ってる。
結局あれで使ってるの一件しかなかったんですね、直近の。
一件しかない。
そこを気づけなかったんですよね。
Mintってグループ買いしてたやつがあったんで、
これはクエリを変えて、まともと入ってるデータはレギュレーションのどこ見ても変えちゃいけないって書いてないから、
42:05
リセットされたのも書いてないから、これ集計したデータだけ残すように変えるのはやってもいいなって言ったらこれだいぶ件数減ったんで、それでも結構伸びたわけですね。
そうですよね、元データをいじるっていうところに行かなかったんですよね。
あのヤバそうなSQLをなんとかしなきゃいけないんだろうっていう風な頭になってた。
元データが入ってるみたいな頭がなくてですね。
クエリだけ変えたんですよ。
クエリだけ変えて、追加したやつ、この一件だけ追加した後追加しないっていう風にして、あと取ってきたらいいんじゃないかって。
それで結果、ニューレジックの方のトレース見たら、全然それが早くないというかむしろ遅くなってる。
なんでだと。めちゃくちゃな流数フェッチしてるぞ、これなんだって。
もともとのデータ合成ケースが多いんだって。
これなんとかしないと。
そこに気づけてるのはやっぱり素晴らしいですね。
ニューレジック先生は様々ですよ。
なるほどな。プロファイラーなんだな。
新しい入れると遅くなります。
そうなんですよね。分かる。
オフィス主翼の時にどれか分かんなくなっちゃうやつ、区別つかなくなっちゃうやつ、多分ニューレジックの方のバグなんだよね。
来年には直ってる時ですね。
Pythonとかもそういう定番プロファイラーみたいなのあるんですよね、きっと。
いっぱい予習した割には結局どれもうまく入らなくても。
つらい。
あとローカルでどうしても動かなくて、サブドメインのなんちゃらがうまくいかなくて。
ローカルで動けばデバッグしやすいかなと思ったんですけど、ローカルで全然動かなくて。
分かります。
しょうがないのでMySQLのデータだけダンプをローカルに持ってきて、
X-Plane見てインデックスを貼ってお茶を濁すみたいなことをして終わってしまいました。
難しかったよな。
PHPもローカルで動かなかったですか?
ドカコンポーズアップってやったらコンテナ立ち上がったんですよ。
コンテナ立ち上がってからこれ動かすまでの手順というのがパッと思いつかない。
これきっと難しいだろうって言ってすぐに諦めたんですよ。
ローカルで動かすことまで考えなかったな。サーバーでガンガンやってましたね。
別にベンチマークボタンをボンボン押してて、これをテスト外に使おうという感じになりました。
割と早い段階で。
アプリケーションプロファイルはNew Relicを使ってたみたいですけど、
クエリはどうしました?SQLって解析ってどうしました?
New Relicさんはクエリも出してくれる。
そうなんだ。なるほど。便利。
New Relic、ちゃんと勉強したほうが良かったな。
45:00
SQLのどこで遅いって言うと、SQLiteが出るとこれが遅いですみたいなのを出してくれる。
SQLiteも出るんですね。すごい。
なんてことだ。
フェッチしてるやつがいるぞっていうのもそれが良かった。
PTクエリダイジェストを僕入れたんですけど、
SQLiteどうしようみたいな。
そうなりますよ。
これ戦えないじゃんって。
MySQLのボトルネックも分かった。
でも違うところにどうやらあるぞって思って。
私もとりあえず開始30分前ぐらいに、
イズコン2とかでググりながら、
PTクエリダイジェストとかっていうのを使ってる人たちがいるらしいって言いながら、
手に入れといてください。
いやー、まいったなあれは。
SQLiteに振り回されましたよ。
でもSQLiteだけじゃないんですけどね。振り回されてるのは。
他のところでもいろいろ振り回されましたけど。
ちょっと中身の話をたくさんしちゃったんですけど、
いがらすさんのとこは2人で、ななやむさんのとこは3人っていう話だったんですけど、
今回遠隔でやられたんですかね?リモートで。
そうですね。
コミュニケーションはどうやってやりました?ツール類とか。
Discordのサーバー用意してくれたので、もう片方の人が。
じゃあ音声だけ繋ぐ感じですか?
そうですね。音声通話しつつチャットで、必要に応じて情報共有しつつですね。
うちはMeetの部屋を作って3人で入って、ずっと顔つき合わせながらやってたんですけど、
ななやむさんのところはどんな風にやってました?
うちもDiscordのサーバーを1人が立ててくれて、そこで3人でずっと音声繋いでました。
それで何か過不足なくやれた感じですか?
こういう状況なんで実際に会ってやるっていうのはなかなか難しいんですけど、
こんな感じのイスコンもあるんだなと思って。
僕初参加ですけど、テンプルとはなかなかリモートツールでやるのがあれですね。
近くにいるともっと相談とかしやすいのかな、どうなのかなって思いながらやったんですが。
なるほど。
仕事の時って炎上してて、近くにメンバーいるとちょっとやりやすいところもあるので、
トラブってるときとかって。
そういう状況なわけじゃないですか、強制的に。
うちはあれですね、そもそも普段会社のほうがですよ。
札幌本社で仙台支社っていうところで、私仙台だから。
48:03
で、ずっと札幌のメンバーと仕事してるので。
なので基本的にリモートで話すのが基本ではあるんですね。
仙台のメンバーもいるので、仙台のメンバーとは対面で話しますけども。
なのでそこはあんまり困らなかったですね。
今回一緒に組んだ人はチャットでは知ってるけども、一度も会話しそうじゃなかった人だったんで。
とりあえず始まる時にどうぞ。
いらっしゃいませ、初めまして。よろしくお願いします。
会社のメンバーなんでしょ?
会社のメンバーですけども、やっぱり百何十人とかいる会社なので。
全然チームが違うと、チャットのやり取り終わっても音声はなかなか。
でもリモートで繋ぎながらもなかなか面白かったですよね。
最後に3人でワーワー言いながら、これやるね、あれやるねって言って。
大変でありましたけど。
765さんのところもやっぱりリモートですよね、普通に。
そうですね、名古屋の会社なんですけど、私は名古屋に住んでて、私は割と出社すること多いんですけど、他に名古屋に住んでるメンバーも元々リモートワークの人もいるので。
リモートでパッとハドルとか繋いで普段、スラックで音声とか繋いで打ち合わせとか障害対応とか普段からやってるので。
そこは全然、ディスコードに媒体が変わっただけで問題なくできました。
イスコン話でもう50分ぐらい喋ってますね。
1時間経ちました。
だいぶ盛り上がった。もうちょっと負けるかなと思ったけどそんなことなかった。
イスコンの話、他なんか話し足りないことあるかな。
次の話題に移っちゃおうかな。
イスコンの話はこんなところで、次の話に行きたいんですけど。
PHP Conference 2022が開催されますと。
プロポーザルをお二人出されてるんですよね。
出してましたね。
僕もですね、超久しぶりに出しました。
井河羅さんは1つか。
アナウンサーさんは3つ?
私は3つです。
やるな。
どうですか?地震の報道は。地震の報道はってでもおかしいけど。
地震の報道は。
井河羅さんはどんな話ですか?
51:01
で、行こうと思ってるんですか?
トレートの話をしようと思ってますね。
ほぼトレート。
外人にたくさん嫌われてるらしいって話が最近わかってきたんで。
トレートがですか?
トレートのどこが嫌われる要素があるのかっていう話をしようと思います。
なるほど。
アナウンサーさんは3つあって、一番通したいのはどれなんですか?
一番通したいのは真ん中のDDDの話が一番話したいんですけど。
DDD。はい。
最初にクラスに名前を付けるのは難しいっていうのが一番最初にプロポーザルオープンしてすぐに出したやつは
今ちょっと新人教育をしてまして私。
PHPをちょっとフィズバズぐらいは書けますぐらいの人に
うちの会社オブジェクト思考とかでちょっと有名なんですけど
それを覚えてもらうみたいな新人教育をしてまして
その中でこの話を
これを読めって言ったら終わるコンテンツ作りたいなと思って
不純な動機で出したのが1個目のプロポーザルなんですけど
先に3番目の話をするとこれも新人教育ネタで
これを読めって言ったら終わるコンテンツ作りたいなと思って
私自分のフェスパー会議とかの登壇した動画これ見といてみたいな感じで
割と楽に新人教育できるなと思っていて
素晴らしい。
これを楽したいなと思って1番目と3番目はそういうやつなんですけど
2番目は割と魂の叫びとか
日々ツイッターとか見ててそうじゃないんだって
みたいなのが溜まってきたのを喋りたいなっていうのが2番目です
DDDみたいなやつです
DDDわからん。教えてください。
DDD
僕はですね、LTなんでネタみたいな話なんですけど
久しぶりに一応真面目に出しました。
FQDNってあるじゃないですか
www.example.comみたいな
こいつをチェックする処理っていうのがなかなか難しくてですね
そういう文字列がちゃんとFQDNとして正しいのか
みたいなのをチェックするっていうことをやったらっていうか
やろうと思ったら意外とめんどくさくてですね
なんか一発でできるやつないんですよ
それをちょっと調べてみたんで
話そうかな。話せればですけど
と思ってます
なんかフィルターバーってあるじゃないですかPHP
あります
フィルターっていう機能が
54:01
なんかそれにドメインっぽいのがあるんですよ
あるんです?
そうそうあるんですよ
でそいつ通すとなんかスルーしちゃって
スルーしちゃう?
そう
あっこれ違うんだみたいなそういう話です
そんなマナー
そうそんなマナー
いつでしたっけ
9月の
来月?
24
もう来月ですね
もう来月なんだ
今年は現地ってないんですかね
どうなんですかね
リモートなんですかね
一応現地開催なんすよね
当初そう言ってましたけれども
ちょっとご時世的になんか正常怪しいですよね
だいぶ怪しくなってきましたね
ピークアウト始まってるっぽくはあるけど
どうなんでしょうね
ちょっと考えてこないですね
イベントやったことあるのを考えると
一応一応お聞きしますけど仙台どうなんですか
仙台、PP Conference仙台はまだですね
まだですか
そろそろかなっていう気持ちになってたんですけど
ちょっとこのステージを見てるとまだですね
PHP Conference福岡もまだですね
会場がね会場を抑えてねやっぱりできません
ちょっとリスク取れないですよね
そうなんすよね
個人では難しいです
743に一応ぶっ込みますけど
PHP Conference名古屋なんてどうなんですか
これ何年も前から影も形もないやつなので
何回かやろうって話は盛り上がるんですけど
実現に向けては一度も動いたことがなくて
やろうとしてる動きを察知はしてるんですよ
なんかですねGitHubにですね
なんかあるんですよリポジトリが
リポジトリがあるんですね
そうPHP Conference名古屋
Twitterアカウントは知ってるんですけど
なんかねリポジトリがあって
やるのかみたいなのが何年か前にあって
Twitterアカウントありますね
Twitterアカウントは作ったの知ってるんですけど
GitHubはさすがに知らなかったです
なんかねあったんですよ
見ましたよ前に
でもあれですね
PHP Conference名古屋の
Twitterアカウントのアイコン画像は
完全にあれですね
名古屋.phpってやつです
名古屋.phpかな
名古屋.phpのグループで
PHP Conference名古屋っていうリポジトリありますね
あるでしょほら
PHP Conference名古屋って書いてある
なるほど
57:00
ほらほらほら
すみません
ありますよ
すみません
開催されるに違いない
数年越しで
世常的な問題はあるものの
やっぱりねいろんなところに行きたいので
将来的にあるといいなって僕は思っています
仙台も行けたしね
そのうちやりたい
お待ちしています
福岡もねそのうち
私仙台も福岡も結局タイミング合わなくて行けなかったので
そのうち頑張るんで
楽しみにしてます
そのうち頑張るんで
行けそうになったら頑張りますね
名古屋も行きたいのでよろしくお願いします
よろしくお願いします
はい頑張ります
さあさあそんなところでもう1時間になるんですが
2人話し足りないことないですか
これ言っときたかったみたいなのはないですか
大丈夫ですか
そうだいつこんな話だいぶしてましたけれども
WebプラスDBプレスの今のPHP連載やってまして
はいはいはい
そこでPHPのFPMの設定とかですね
オピキャッシュの設定の話とかが出てきたりもしますんで
機会があればぜひっていう宣伝をやっておきます
ナイス宣伝素晴らしい
いいですねそっかそっかちょうど連載中なんですっけ
そうですね
単発じゃなくて連載なんですかね
そうですね今連載です
今何回目とかなんですか
今が何回目だったかな
全部で何回とか決まってるんです
ざっくりざっくり大体このくらいかなみたいなのは決めてますね
WebDBプレスなんですね
何回か使い買いやったのかな
もうそんなんやってるんですね
皆さんあれですねさっき言われた設定周りのところを
勉強したい方はぜひぜひって感じですね
PHPの設定
これでイスコンにも勝てますね
これだけど勝てないのは分かってますけど
私が十分に証明しましたけど
いやもう一回やりたいな
もう一回やりたいな
もう一回やりたいと思いますね
なんか勝った人の回答とか見てても
PHPでできるわけじゃなさそうだなみたいな話ばっかり出てくるんで
こっそり勝手にインスタンス環境とかって
PHPでできるだけぶっ込んだらどうなるか見たいですね
いや悔しかったんでね
正直浮き足だったので
1:00:01
次回もうちょっと落ち着いてやれればなと思います
七夢さんは次回っていう気持ちはありますか
そうですね来年も出れたら出たいんですけど
できればPHPで出たいなみたいな
正直なとこが出た
若者のPHPで教育していけば
PHPみんなでやってくれるんで大丈夫
そうですね
若者を教育して
あと壮大さんを味方につけてください
そんなとこでちょうど1時間ですね
じゃあこのあたりで締めさせてもらおうと思います
最後にもう一度Twitterのハッシュタグについてお知らせです
ハッシュタグはカタカナでつなぎめFMです
ツイートお待ちしてます
ということで今回のつなぎめFM第12回は
いがらしさんと七夢さんにお越しいただきました
お二人今日はどうもありがとうございました
ありがとうございました
01:01:12

コメント

スクロール