Nginx + PHP 7.1.1 FPM vs Node.js 7.7.1バックエンドパート2

みなさんこんにちは! 2つの言語の対立の継続。



今日は、より正直な比較を行います。これは、ほとんどの実際のタスクを反映しています。

したがって、今日は以下の理由でPHPとNode.jsを比較します。



  1. 典型的な動的ページ
  2. REST API




重要! 発生する可能性のある質問やプレゼンテーションへの回答:



質問: また、クラスターでNode.jsを実行すると、高速になりますか?

回答: ある核プロセッサーでは、処理速度が遅くなります。 (繰り返し確認)



質問: そして、Node.jsの接続プールを使用してmysqlに接続する場合、リクエストの並列化によりおそらくより高速に動作しますか?

回答: ある核プロセッサーでは、処理速度が遅くなります。 (繰り返し確認)



質問: ノードのコードをウォームアップする必要があります。結局のところ、同じ場所にJITがあり、それはより速く動作しますか?

回答: もちろん、すべてがウォームアップされ、結果が最も成功します。



Predyava: はい。キャンペーンのすべてを準備しました。必要に応じて、実際の結果は異なります。

回答: テストコードはGitHubで公開されており、コピーして確認してください。



Predyava: abは、テストされたバックエンドが実行されているサーバーではなく、別のコンピューターで実行する必要があります。

回答: 怠について説明します。 しかし、2語で言えば、abはテスト中に実質的にリソースを消費せず、サーバーが可能な実数をより多く与えます。



サーバー構成:

シンプルなVDS-1コアプロセッサ2 GHz、1 GBのRAM、10 GB SSD。

OS:Debian 8.6。

サーバーが原則として多数の接続を処理できるように、基本的なカーネル設定も行われています。



テーブル(100レコード)にデータを生成しました。



始めましょう。



第1段階(単一クエリ):各サブジェクトの10個の単一クエリから、平均値を選択します。



Node.js-典型的な動的ページ



画像



Node.js-REST API



画像



PHP-典型的な動的ページ



画像



PHP-REST API



画像



ご覧のとおり、生成速度の違いは時々異なり、PHPがこのラウンドで勝ちます。



第2段階(負荷テスト):



各被験者の10回の実行から、平均値を選択します。 ここでは、サーバーが処理できる1秒あたりのリクエスト数に関心があります。 1000スレッドで3000リクエスト。 #ab -n 3000 -c 1000 ...



Node.js-典型的な動的ページ



画像



Node.js-REST API



画像



PHP-典型的な動的ページ



画像



PHP-REST API



画像



動的ページ-PHPはほぼ2倍高速です(正確には1.78)

REST API-PHPはほぼ3.5倍高速です(正確には3.32)



テスト用のコードでリポジトリにリンクする



システム構成、pkhp、Mysqlについて

できるだけ早く動作するように構成されています。

オペレーティングシステム、php、nginx、mysqlの設定方法がわからない場合。 これは私の問題ではありません。



Node.js用の独自のREST API実装オプションを作成して、結果が私のものよりも速くなるようにできたら、本当に感謝しています。 そして、コメントにコードを残して、測定を行い、結果を書きます。 目標は追いつくことですが、PHPを追い越すことをお勧めします。



更新



ユーザーのアドバイスに基づいて、 dosはNode.jsのgithub.com/mscdex/node-mariasqlでMySQLドライバーを変更し、結果が劇的に変わりました!



Node.jsの結果を更新



ステージ1



Node.js-典型的な動的ページ

画像



Node.js-REST API

画像



ステージ2



Node.js-典型的な動的ページ

画像



Node.js-REST API

画像



動的ページ-Node.jsは1.16倍高速(16%)

REST API-Node.jsが1.26倍高速(26%)



All Articles