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%)

Source: https://habr.com/ru/post/J323208/


All Articles