PHP BLT #6 でphp-fpmのチューニングについてお話しました #phpblt

昨夜、2/22(水)に、勤務先のメルカリにて、PHP BLT #6が催されました。僕は、今回は発表に加え、司会をしておりました。

当日の様子: 「PHP BLT #6 #phpblt – Togetterまとめ

発表内容

結論は、php-fpmのプロセス数は固定でCPUコア数の2倍程度にセットしとくといいよ、というものです。

最近、php-fpmでPHPを実行されている人が増えていると聞きます。会場でもほとんどの方が利用経験がありました。僕は前職はITインフラ系のエンジニアでしたが、その経験を踏まえて、php-fpmをデフォルトで利用することから一歩進められるひとつのきっかけとなればと思い、今回の発表に至りました。

php-fpmは2vCPU程度の小さなインスタンスだと、正直デフォルトでもいじっても大きなパフォーマンス差は出ないことがほとんどです。しかし、開発したサービスが利用されるようになり、よりコア数の多いインスタンスにスケールアップした際、デフォルトではその性能を引き出せません。そこで、php-fpmのプロセス数をインスタンスに最適な数にセットすると、利用しているインスタンスの性能を十分に引き出しながら、処理能力を高められますというおはなしです。

実は、Web上を探すと先に僕の書いた結論をさらっと書かれている記事を見つけることができます。ただ、それがなぜなのか、という点をベンチマークツールを使って測定しながら明らかにしていくことが、この発表の特徴となっています。現場で利用されるときも、ぜひベンチマークを取って測定をしながら、最適な値を設定してみてください。

発表後に、PHPのメモリリークをどうやってケアするか、と言う話が出たので、ここで回答します。これは、プログラムを根本的に見直すのが難しい場合などは、 pm.max_requests パラメータを試しに100〜1000にセットしてみてください。これは、指定した回数リクエストを受けると、プロセスが再生成されるようになり、一旦メモリを開放することができるようになります。ただし、プロセス再生成に関わるCPU利用率があがります。

ちなみに、Wordpressの事例ですが、このブログのことです。このブログのサーバはCentOS 7系で動いていまして、ディストリビューション標準のPHPが5.4系でした(発表中5.3と言ってしまいましたが訂正します)。そのため、IUSリポジトリから7.0系を入れ直しています。7.1ではないのは、IUSにpearに関するパッケージがなく一旦やめたというのがその背景です。

勉強会について

司会をやっておりました。今までのPHP BLTのように大きく盛り上げるって感じではなかったのですが、いかがでしたでしょうか。僕がやると、淡々となってしまうところがあるかもとちょっと反省しております。

一方で、半分ほどの方が初参加、そして勉強会にあまり登壇したことがないかたが積極的にLTに参加いただけたのは、本当に良かったです。中には勉強会自体に初めて登壇したという方もいらっしゃいました。これは、PHP BLTの運営の際に、発起人であり勤務先のCTOである @sotarok さんが「多くの方に話をしてもらう機会を作る」ことがきちんと実現できたと思っており、運営スタッフの一人として大変嬉しかったです。

これからも、PHP BLTがコミュニティに参加するきっかけであれたらいいなと思いますし、自分自身もそれに貢献していくことの大切さを感じた夜となりました。

今後も、他の会社さんの会場でも開ければいいなと思っております。

その他いろいろ

勤務先のメルカリでは、今週さらに増床し(See also:「「スマオク」を運営するザワット社がメルカリグループにジョイン!東京オフィスの増床エリアも開放しました #メルカリな日々 2017/2/20」)、六本木ヒルズのほぼ1フロアを利用することになりました。その際、イベント用のスペースもリニューアル&大きくなり、このPHP BLTが外部の方に勉強会用として初めて開放したイベントになりました。

個人的にも、また何か勉強会を企画できたらいいなと考えています。たぶん、やるとしたら、ゼミ形式になると思います。

お会いした皆様、どうもありがとうございました。またよろしくお願いします。

共働きでも働きやすい環境とは 2017年現在版

組織内で個々人の事情について相互の理解があってこそ、仕事も家庭もバランスが取れるよね、というお話。

IMG_1730

仕事中、突如の電話の着信。iPhoneがバイブレーションしながら表示する発信元は「保育園」。

僕の家は相方と共働きです。保育園にお子さんを通わせている方は経験があるかと思いますが、おチビが体調を崩すと保育園からお迎えを要求する連絡が来ます。どっちが迎えに行くのか、揉める家庭もあると聞きます。そんな中、僕の家では原則、僕がお迎えに行きます。

そんな時、チームの島で繰り広げられる会話。

僕: 「すいません、おチビが熱出して迎えに行かないといけなくなったので、一旦帰ります。」

ボス: 「あらー、たーいへん!」

(この間、引き継がなければならない事項、連絡する必要がある事柄を共有。)

別の同僚: 「大変っすねー、気をつけてー」

ボス: 「おつかれさまー」

僕: 「失礼しますー」

で、安心してお迎えに行くことができます。

家庭持ちでも安心して働ける環境は互いの理解が基礎にある

僕の勤務先は、共働きの人でも働きやすい環境であると感じています。僕が考えるに、以下のことがあるからではないでしょうか。

  1. 他の同僚も家庭持ちで状況を理解してもらいやすい
  2. 他の同僚が帰るときもお互いに協力する
  3. 仕事が無理に詰まっていないので別の日に挽回しやすい

1は、とても大きいと感じます。他の同僚が僕と同じように呼び出される時、大変だよなって思いを馳せます。恐らく、逆もそうなのでしょう。そして、僕の同僚は育児・家事にきちんと参加している人が多いこともありそうです。昼飯を食べていますと、昨夜の夕飯は何を作ったとか、おむつの銘柄は何々がとか、そういう話で盛り上がります。

2は、協力できるところは協力する、それだけのことだと考えています。これは家庭の問題だけではなく、例えば誰かが病欠したときにも言えることではないでしょうか。

3は、ボスのマネジメントに拠るところが大きいです。そもそも、トラブルなく普通に勤務していれば、足が出ないスケジュールで開発が進んでいます。そのため、ある日に早く帰って穴が空いたとしても、別のある日にちょっと長めに働いて挽回することができます。それでもだめな場合は、相談に乗ってもらうこともできます。この状況を作ってもらっていることには感謝しています。

制度は理解の基礎があって活かせる

勤務先には、家庭の都合でやむを得ない状況に遭遇したときに備え、「子の看護休暇(有給休暇扱い:年5営業日)」「介護休暇(有給休暇扱い:年5営業日)」をもらうことができます。また、ベビーシッター利用時に補助が出たりします。他にもいろいろあります。

こういう制度は、勤務先の皆さんは積極的に使っているようです。

「制度があっても使えないとしょうがないのでは」という声を聞きます。実態を調べたことはありませんが、一部の組織だと制度はあっても使いやすい環境にないという話も耳に入ります。

ぼくは思うのですが、先の「家庭持ちでも安心して働ける環境は互いの理解が基礎にある」で述べた環境、すなわちお互いの状況を理解し合いながら仕事をする基礎が整っているからこそ、家庭の万一のときをサポートしてもらえる制度が活きるのではないでしょうか。

子持ち以外でもいろんなことがあるからこそ

今回は、共働きの子持ちの家庭における働きやすい環境について、僕なりの意見を述べてみました。

ただ、こういうのは他にもあって、例えば親の介護であるとか、自分自身がかかっている重い病気と付き合っていくこととなどがありそうです。

独身の時は気にしなかったのですが、プライベートを何も気にせずに100%仕事のことだけ考えられる状況や期間というのは当たり前に存在するほうが珍しいのではと考えています。人として生きて行くに当たり、仕事の前にまずは自分があり、そして家庭があります。そんなことをバランスを取りながら、同時にそれぞれ与えられた時間をはじめとした資源の中でしっかりやっていけば、最後には自分を助けることになるのではと考えています。

それにあたっては、ライフステージに合わせたよりよい環境で働くことを積極的に選択する、そして自分自身もその環境づくりに協力することが大切だなと考えている今日このごろでした。

心の健康を体の健康と同じくらい大事にしていきたい

仕事をしていますと、日々健康に働けるよう体調管理が重要であることは論をまちません。

それと同時に、僕は心の健康を大事にしていきたいと思っています。

IMG_7434

心の健康は安定した判断力に欠かせない

僕は働き始めてからほぼずっとソフトウェアエンジニアなのですが、この仕事は常に意思決定を求められる仕事と考えています。クラスの設計、データ入出力の設計、そして運用の設計。いろいろな判断が求められます。

そんな中、「なんでこんなの実装したんだ、あ、自分か。」と思うものを見つけた時に振り返りますと、たいてい慌てていたり、気持ちが沈んでいることを思い出します。

また、人と接する時に、心の健康が維持されていませんと、どうしても丁寧さがおろそかになってしまうことがあります。良い印象を維持するのはなかなか大変なのですが、悪い印象を持たれるのはあっという間だったりします。損であります。

最近心がけていること

最近心がけていることは、この3つです。

  1. よく寝る
  2. 喜びすぎない 悲しまなすぎない
  3. すっきりする活動をする

まず「よく寝る」ようにしています。6〜7時間くらい。あと、昼寝も15〜30分くらいしています。体調はもちろん整いますし、精神的にも安定します。僕がよくない判断や行動をするときは、たいてい寝不足か寝すぎです。

次に「喜びすぎない 悲しまなすぎない」です。感情の起伏を強く作ってしまうと、僕の場合それに持って行かれてしまうことがあります。ほどよく物事を感じ取ることで、平静な気持を維持できるように努めています。

最後に「すっきりする活動をする」です。例えば、スキーに行ったり、ロードバイクで走りに行ったりしています。家庭がありますのでいつでもというわけにはいきませんが、相方と相談して時間をやりくりして取り組む時間を作るようにしています。

いろいろ起こるからこそ

生きていますと、仕事のこと、プライベートのこと、それぞれいろいろ起こります。良いことも、悪いことも起こります。その時に心の姿勢が崩れると、なし崩し的に他のことも崩れてしまいかねません。だからこそ体はもちろん、心の健康も大切にしていきたいと考える今日この頃でした。

2016年を振り返る – 淡々と 粛々と

まもなく2016年が暮れようとしています。毎年、自分の中では恒例の年末エントリを今年も書くことにします。

本務の仕事のこと、プライベートのこと、そして来年のことについてまとめておきます。

IMG_7530

本務の仕事のこと

今年のはじめにメルカリへ転職をしまして、随分と環境が変わりました。3つ挙げてみます。

  1. 小さい組織で全体を考えることから 大きな組織でイチ従業員に
  2. サンフランシスコに仕事で出張してきた
  3. 対外活動は今年はあまりしなかった

1は、前職が今とは比較して小さな組織ではありましたが、全体を見て一人一人の生産性や働きやすさを考えながら、具体的に手を打っていく働き方でした。やりたいことをやらせてもらえていた、そう言えるかもしれません。一方で、現職は多くの人がいる中で、自分に今求められている業務が絞られ、そしてはっきりしていまして、その中で結果を出していく働き方に変わりました。

たぶん、通常であれば物足りない仕事になってしまったと思います。ただ、実際にはそうはなっていません。なぜなら、多くの人が知る通り、組織全体で強い結果を出している中で、どのようなことが組織内で行われているのか、身をもって体験できているからです。組織の勝ちパターンを知ることは、望んでもなかなかできないことであり、それが体験できるだけでも良い機会に恵まれたなと感じるのです。

2は、転職した際に望んでいたことの1つが叶ったことでもありました。日系の企業に勤めていますと、海外出張はよくてカンファレンスの出席くらいかもしれません。そうではなく、実際の開発業務を遂行する中で海外出張ができたことが本当に貴重な体験でした。それも、インターネットサービスのメッカであるサンフランシスコであったことが大変貴重でした。ニュースでしか知ることのないサービスを体感することはもちろん、実際に担当しているサービスが米国でどのように使われているのか、現地で知ることができるのです。

ただ、今後海外で本格的に活動しようとした場合、今の英語力では足りないこともまた事実です。来年も継続して英語の勉強を続けていく必要があることを痛感しています。

IMG_6789

3は、昨年に比べて今年は対外活動をあまりしませんでした。ほんと、ちょっとだけでした。いちびりな自分が、なんか珍しいなと自分ながらに思ってしまいます。

プライベートのこと

一番大きいことは、マンションを買ったことでしょうか。サラリーマンをやっていれば、結婚して、子供を設けて、家を買うのが普通だって考えますし、実際に自分の両親がそのような生活を送っていました。しかし、いざ自分でこの普通の生活を成し遂げ、そして継続的に取り組もうとしますと、非常に難しいことだなと感じずにはいられません。

来年のこと

本務の仕事は、これからも淡々と、そして粛々と取り組むつもりです。プライベートのこととともに、長距離走だと考えて、ペース配分に留意しながら継続できるよう取り組むつもりです。

そして、育児が少しずつはありますが手がかからなくなってきたので、来年はプログラミング教育の場にも少しずつ復帰する年にします。具体的には、TENTOに復帰します。

といっても、プログラミング指導のボランティアではなく、TENTOを今後どうやっていくのかを考え、具体的に行動していく取り組みを中心に行う予定です。本務の仕事があるため非常勤での取り組みとなり、時間の制約こそありますが、小さな組織をまた新しく形作ることに加わることができることを、大変楽しみにしています。

まとめ

人生35年生きてきましたが、それと同じ年数の住宅ローンを組みつつ、これからの人生の土台を作ったのがこの一年だったなと振り返っております。

これまでもいろいろありましたが、この後もいろいろあると思います。とはいえ、またその時々で、淡々と、着実に取り組めるように活動していけたらと考えています。

IMG_7344

皆様、今年も一年、大変お世話になりました。良いお年をお迎えください。

#builderscon tokyo 2016 に行ってきました

先週末は、builderscon tokyo 2016 へ足を運んできました。YAPC::Asia Tokyoに代わって、「「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。」をテーマに開かれたカンファレンスです。

聴講したセッション

次のセッションを聴講しました。

  1. OSS は Windows で動いてこそ楽しい
  2. php.iniについて知る
  3. Open Beer Serverの理論とその実装
  4. C 言語で行う Web フロントエンドプログラミング
  5. そろそろプログラマーもFPGAを触ってみよう!
  6. 一から始めるJavaScriptユニットテスト

たしかに、テーマの通り「知らなかった、を聞く」セッションばかりでした。また、皆さんが作られているスライドの品質が高いため、無理にノートを取る必要もなく、ゆったりと聴講することができました。

同時に聞けなかったセッションも、大変興味深いものがあったと聞いています。スライドも続々アップされているようですので、改めて拝見してみようと思います。

感想

カンファレンス全体の内容として、時代に乗るのではなく、自分から時代を作っていく方ばかりだなと感じました。ここから、自分がどのようなところにアンテナを張っていくのか、きっかけになるカンファレンスになるのでしょう。

そして、自分自身で取り組んでいることを、YAPC::Asia Tokyoのときのようにまた発表したいなというモチベーションがあがってきました。次回は2017年8月に催されるとのことですので、それまでにしっかり仕込んでおきます。

運営の皆様、発表者の皆様、大変お疲れ様でした。また、お会いした皆様、どうもありがとうございました!