![高負荷を捌くDBチューニングノウハウを公開!PHPとMySQLの TCP TIME-WAIT チューニング(後編) | さくらのナレッジ](https://cdn-ak-scissors.b.st-hatena.com/image/square/88d84ad0a3c164770cb700c8296fbe8226a6c3be/height=288;version=1;width=512/https%3A%2F%2Fknowledge.sakura.ad.jp%2Fwp-content%2Fuploads%2F2017%2F11%2Ftuning_icatchSS_B-930x630.png)
php-fpmはgraceful restart. そう思っていた頃が私にもありました 以下の公式ドキュメントに「緩やかな (graceful) 停止/起動 機能を含む高度なプロセス管理」と記載があるので、 何の疑いもなくservice php-fpm reloadを叩いたらプロセスが落ちました。。 PHP: FastCGI Process Manager (FPM) - Manual reloadもrestartも終了処理は同じ もちろんこれはreloadだからというわけではありません。 reloadもrestartも、実行するkillコマンドにUSR2オプションは付いています。 付いているのですが、これが期待する動作(プロセスの処理が終了したらkill)になりません。 ググるとすぐ出てくるのですが 以下のバグとして上がっていますが、ずっと放置されているようです。 PHP :: Bug
※2017/05/29現在Repositoryの章までしか聞けていません。聞いている際に浮かんだインスピレーションが揮発しないよう永続化する為に書いた記事です。 php-genba.shin1x1.com まさか日本語でこの内容を聞けるコンテンツがあるとは思わなかったです。 これは英語をマスターすれば Sound of Symfony The Laravel Podcast Ruby on Rails Podcast JavaScript Air devchat.tv などのPodcastからより多くの興奮を得られる事を意味します。 プログラミング経験3年、細かい修正ばかりで設計レベルの経験値が全くない自分ですが、各章について以前から個人的に思っていた事、お三方の知見からインスピレーションを得た内容を書き残します。 1. DI 「依存性の注入(Dependency Injection)」と
PHPは割と翻訳もいろんな人が頑張っていて、日本語のマニュアルも充実しているので 最近触る機会を得たこともあり、マニュアルを一通り読んで自身が気になったところを 書き残して置きます。 マニュアルの構成 はじめに インストールと設定 言語リファレンス セキュリティ 機能 関数リファレンス PHP のコア: ハッカーの手引き FAQ — FAQ: よくある質問 付録 この中で、他の言語では余り見ない項目はセキュリティですね。 この辺は、IPAの安全なウェブサイトの作り方 や徳丸本に詳しいのですが、PHPでのセキュリティ周りはよく悪く言われているのを耳にするので マニュアルの方にも書かれているんですかね。 気になった項目 FastCGI Process Manager (FPM) PHPのFastCGI 実装の一つだそうです。気になった機能は「opcode キャッシュが壊れた場合の緊急再起動」で
PHP7 で利用できる php-ast 拡張モジュールを導入して、PHP のプログラムのファイルサイズと抽象構文木のノード数の関係をプロットしてみます。 PHP7 では、プログラムを実行する際、構文解析の結果を抽象構文木 (Abstract Syntax Tree) の形にして、それからバイトコードを生成するようになりました*1。抽象構文木を作ってフェーズを分けることには、コンパイラの実装の見通しがよくなる、さまざまな最適化を実装しやすくなる、といった利点があります。このようにフェーズを分けることはコンパイラの実装では一般的で、下記の Wikipedia の説明にもあるように、おおまかには、抽象構文木を作るところまでの処理をフロントエンド、抽象構文木を解析、最適化して実行コードを出力する処理をバックエンドと呼びます。 コンパイラ - Wikipedia 抽象構文木はコンパイラの内部で利用さ
1 Host header value prior to operation. 2 Host component of the URI composed in the request prior to the operation. 3 Host component of the URI being injected via withUri(). 1.3 Streams¶ HTTP messages consist of a start-line, headers, and a body. The body of an HTTP message can be very small or extremely large. Attempting to represent the body of a message as a string can easily consume more memor
2016年12月22日にTransactd PHP ORMをリリースしました。 これはTransactdを使用したMySQL/MariaDB用のORMライブラリです。 今回はこのTransactd PHP ORMを紹介します。 Contents 主な特徴 高速なDBアクセス 省メモリ 高スループット 高可用性 自在なトランザクションとロック、スナップショット 詳細なドキュメント 欠点 詳細 ORMインターフェース リレーションのロードタイミング インピーダンスミスマッチ モデルのキャッシュ IDEのコード補完支援 プロパティアクセス速度 複雑なデータベース処理 まとめ 主な特徴 高速なDBアクセス Transactd PHP ORMは、ORMでありながらPDOを直接使用したアクセスよりも高速なデータアクセスができます。 下図は、TransactdとPDO、Laravel EloquentO
2016 - 10 - 09 LINE Bot SDK PHP 1.0.0について php LINE Bot SDK PHP の新しいバージョンであるところの1.0.0が出ています. Release 1.0.0 - Support new LINE Messaging API · line/line-bot-sdk-php · GitHub 今までのバージョンと何が違うかというと,今までの bot SDK は BOT API Trial と呼ばれる API をサポートする SDK だったんですが,今バージョンからは Messaging API と呼ばれる API のサポートを行なう SDK となりました. まあそんな感じなんですが,この PHP の SDK について色々と質問が散見されたので軽くお答えします. なんでPHP5.6以降しか対応して無いの? 趣味……と言ってしまえばそこまでなん
id:koyhogeさんのPHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Techから。(先日はありがとうございました m(__)m) 「PHPは内部でstat()を呼びまくっているので遅い」とのことですので、include_pathの後ろの方のディレクトリにあるスクリプトファイルを大量にrequireしていたりすると、それだけでコードキャッシュのメリットが出てくるのかもしれません。 PHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Tech どのレベルからキャッシュが利用されるのかは、ちょっと記憶が無いので、コードを読み直さないとダメなのですが、「stat()を呼びまくって遅い」のstat()が爆発的に呼ばれる動きを軽く説明?したいとおもいます。(早く寝なきゃと適当に書いてるので、説明になってない。。ーー;いかんせん、こういうのあまりやら
$ php -v PHP 5.5.12 (cli) (built: May 17 2014 00:11:08) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethan $ php -r 'print_r(ini_get_all());' Array ( [allow_url_fopen] => Array ( [global_value] => 1 [local_value] => 1
発端 某所で「最近のPHPのcurlライブラリはパラレル取得できる」ときいて「エッなんで、PHPって基本シングルスレッドだしイベントループみたいな機構もないと認識してるんだけど」って思って調べた。 追記:と思ったが、この記事を書いた後さらに調べたら、そもそもPHP には stream_select など IO 多重化をサポートする関数群があった。不勉強であった。 なにはともあれドキュメントにあたろう PHPは公式のドキュメントが充実していてすばらしい。これは素直に認めるべきPHPの美点だと思う。 Client URL Library うーんなんか見た感じCで並列性を吸収してるのかな?という感じの低レベルAPIへのグルー感。じゃあ実際にソースを読んでみる ソースを読む https://github.com/php/php-src/blob/85d05b5654cbbbf6f741d7f9be
9. 問題の実装 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php class BlackListDB { const DBPATH = "/tmp/db.gdbm"; public function isBlock($id) { $dbh = dba_open(self::DBPATH, "r", "gdbm"); if ($dbh === false) { return null; } $ret = dba_exists($id, $dbh); dba_close($dbh); return $ret; } } 10. 問題点 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php class BlackListDB { const DBPATH = "/tmp/db.gdbm"; publ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く