私は会社で WEB アプリケーション (PHP + MariaDB) を実行しており、ラップトップで開発し、専用サーバーで実稼働バージョンを実行しています。
最近、パフォーマンスの測定を始めましたが、ラップトップのパフォーマンスがサーバーよりも優れていることに気付きました。たとえば、あるページはラップトップでは約 50 ミリ秒で生成されるのに対し、サーバーでは約 130 ミリ秒で生成されます。この時間は PHP コードで microtime() を使用して測定されるため、サーバーへのネットワーク リクエストの遅延は無視されます。
問題は、サーバーはあらゆる点で私のラップトップよりも優れたパフォーマンスを発揮するはずだということです。このアプリケーションでは 130 ミリ秒で十分であるため、私はこの事実にこれまで気づきませんでした。しかし、可能であれば、何が原因なのか理解したいと思います。
次のステップは、コードのさまざまなポイントで時間を測定することだと思いますが、その差は非常に大きい (> x2.5) ため、何かが欠けているのではないかと思わずにはいられません。
ここに詳細があります。
CPU
- ラップトップ: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
- サーバ: インテル(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz
ラム
- ラップトップ: 16 GB DDR3 @ 1600MHz
- サーバ: 32 GB DDR4 @ 2400MHz
OS
どちらも Debian 9 を実行しているため、Apache2、PHP、MariaDB などの同じバージョンが実行されており、ほぼ同じように構成されているはずです。
マリアDB
サーバーでは、12 のインスタンスに分割された InnoDB プール サイズに 24 GB の RAM を使用するように構成されています (すべてのテーブルで InnoDB が使用されています)。現在、4.5 GB の RAM しか使用されていないため、ディスク アクセスは問題にならないはずです。
ほかに何か?
- スワップ使用量は null です
- CPUはほとんどの時間アイドル状態です
- 特に、測定は誰もアプリケーションを使用していない瞬間に行われた。
- サーバーは他のサービス(git、他のWEBアプリケーションなど)を実行していますが、特にCPU使用率が低いことを考えると、パフォーマンスにそれほど影響を与えることはないはずです。