同じハードウェア構成を持つ2つのDellR730システムを同時に購入しました。両方とも、同じイメージからイメージされたRHEL6.9を実行しています。 1月に撮影されました。私は月に一度リポジトリからパッケージを更新するので、一般的にシステム上のすべてが「ほぼ」同一であるはずです。 (つまり、一方のシステムで変更したソフトウェアまたは設定は、もう一方のシステムでも変更されますが、手動プロセスであるため、何かが見落とされる可能性があります)
一方のシステムのパフォーマンスがもう一方のシステムより2.5倍遅いことに気づきました。私がテストしているジョブは、シングルスレッドのCPUを集中的に使用します。一部のデータファイルを読み取りますが、iostatによるとディスクIO使用率は非常に低くなっています。上は、プロセスが常に100%で固定されていることを示していますが、システムには88のスレッドがあり、負荷の平均は約1です。メモリ使用率はごくわずかです。ネットワークを使用していません。 (使用するすべてのファイルはローカルです)1つは複雑なpythonスクリプト、もう1つはプロプライエタリソフトウェアプログラムで、どちらも一方のシステムで他方よりもはるかに低速で実行されます。
/ proc/cpuinfoは同じです。 BIOS設定は同じです。システム上の1人のユーザーのみ。システムがインターネットに接続されている速度が速いほど、スタンドアロンネットワーク上にあるシステムは遅くなります。
私の調査では、2つの違いしか見つかりませんでした。 1.高速のシステムはBIOSバージョン2.25を実行しています。低速のシステムはBIOSバージョン2.43を実行しています。2。低速のシステムは実行を監査しています。ただし、プロセス中の監査ログにはアクティビティがありません。
これをデバッグするのは難しいと思いますが、何を探すべきかについてのアイデアが不足しています。何が起こっているのかについてより多くの洞察を与えるために使用できる組み込みのソフトウェアツールはありますか?
エンタープライズハードウェア上のEL6システムに関する今日の私の推奨事項は次のとおりです。
enterprise-storage
またはlatency-performance
に設定する必要があります。sosreport
を実行して、両方のシステムの構成の要約を取得することができます。もちろん、プロセスのプロファイルを作成することもできます... top
、perf top
、pidstat
、strace
。
または、 Netdata を使用してサーバーをリアルタイムで確認し、すべてのシステムメトリックを相互に関連付けて、ボトルネックが存在する場所を確認します。
また、/ etc/profile.d/tzfix.shで次のことを行います 正当な理由で :
# Set TZ variable to reduce stat("/etc/localtime" activity
# See: https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
#
export TZ=:/etc/localtime
始めるためのほんのいくつかのアイデア。
これはおそらく電源管理に関連しています。両方のサーバーをハイパフォーマンスモード(電源管理を無効)にして、パフォーマンステストをやり直してください。