web-dev-qa-db-ja.com

Ubuntu ppc64elのパフォーマンス

Ubuntu Linux 14.04.5を新しいIBM Power8 modにインストールしました。 8286-41a。私の目標は、アプリケーションSugarCRM CE 6.5でこのパーティションを使用することです。 PHP 5.6。現在、ubuntu 14.4.1のvmware仮想マシンでsugarcrmを使用しています。ppc64elプラットフォームでのパフォーマンスの向上が期待されていたため、ubuntu 16をインストールできませんでした。代わりに、実際には手順がAMD64マシンよりもかなり遅いことがわかりました。両方のシステムで同じランプバージョン(Apache 2.4.7、mysql 5.6.33、php 5.5.9)2台のマシンの情報については、添付の画像を参照してください。 ppc64el vs AMD64 config

2
bob3321

tl; dr:多くのppc64elおよびPOWER8最適化が行われる前のすべてのバージョンを使用しているため、1つ(または複数)のコンポーネントをアップグレードせずに達成できるパフォーマンスには制限があります。

Ubuntu 14.04がリリースされた頃、LAMPスタック全体を調べて、POWERのパフォーマンスを詳しく調べました。不足している場所があることがわかったため、それらを修正する作業に行きました。残念ながら、最初のPOWER8システムが出荷される少し前にUbuntu 14.04が出荷されたため、Ubuntu 14.04が出荷される前に最適化に取り組み、アップストリームに移行するのに十分な時間がありませんでした。

POWER8で動作するMySQL 5.6の最初の(比較的)安定したパッチセットがあったのは2014年5月/ 6月のみでした。これは、Ubuntu 14.04がリリースされてから数か月後のことです。これらの初期パッチはパフォーマンスにあまり焦点を合わせていませんでした(ただし、Ubuntuはppc64elがサポートされているプラ​​ットフォームであるため、それらをディストリビューションに引き込みました)。

パフォーマンスについては、MySQL 5.7で修正されていたものがいくつかありました。私は2014年6月にPOWER8で毎秒100万クエリを実行する非常に概念的なMySQL 5.7ポートを持っていました。MySQLの問題の多くはミューテックス競合に関連しているため、古いMySQLMySQLをより少ないCPUコアに結び付けることにより、パフォーマンスを改善します

取り組むべき他のボトルネック、特にCRC32のパフォーマンス(そうするように構成すると、InnoDBはオンディスクチェックサムとして使用します)の中で、POWER8に最適化されたCRC32が41回出現しました最適化されていないバージョンよりも高速です。この作業はMariaDB 10.1と統合されました。

POWER8で最新のMariaDBを非常にうまく動作させるために、多くの作業が行われました。そのため、MariaDBへの切り替えがオプションの場合、データベースのパフォーマンスが向上します。また、MySQLのさまざまな_instance変数を増やす必要がある場合があります-POWER8システムには、x86システムよりも多くのlotCPUコアとスレッドがあり、デフォルト値はそれは素晴らしいことです。

PHPに関しては、私はその最適化作業にあまり関与していませんでした。基本的に、新しいPHPは、多くの場合かなり高速です。これは、いくつかの古いpowerpcの「最適化」を削除することのすべてによるものです(カスタムアセンブリは、コンパイラが生成できるものより常に速いとは限りません) phpへのコードの貢献、GCCの改善(と思う)。

私の同僚のダニエル・アクテンズは、PHP=詳細。

特定の構成に戻り、1つのCPUコア(8つのスレッド)または1つのCPUコア(1つのスレッド)をPOWER8のVM?に割り当てましたか?コア全体が同時にゲストに入るため、ゲストにスレッドを与えることもできます。通常、SMT4はSMT1よりもパフォーマンスを大幅に向上させます(VM構成とゲストでppc64_cpuユーティリティを使用してスレッドモードを動的に変更できますが、ゲストが割り当てられているよりも多くのスレッドには変更できません。

私はPOWER8 MySQL/MariaDBについてたくさんのブログを書きました: https://www.flamingspork.com/blog (mysql/power8タグを参照してください... askubuntuからも投稿できません多くのリンク)

2
Stewart Smith

あなたの質問は尋ねられたとおりに答えるのはかなり難しいです-どの部分が遅いか、速度をどのように測定しているかなどを知ることは本当に役立ちます。

しかし、ここにいくつかのポインタがあります:

まず、16.04に移動する必要があります。

  • PHPの問題のため、あなたはそうしていると言いました。SugarCRMはPHP5に依存し、16.04はPHP7にのみ付属していると思います。これは残念です:php7 ismuchは、IntelとPowerの両方でphp5(ほとんどの場合、約2倍)より高速ですが、それで終わりではありません。16.04に移行して、PHP5と互換性のあるHHVMを使用できます通常ははるかに高速です。Powerでそれをうまく機能させるために多くの素晴らしい仕事がありました(私が関わったもののいくつか)。仕事のほとんどは現在アップストリームであると思いますが、 開発リポジトリ これはさらに最新のものである必要があります。ソースからコンパイルする必要がありますが、手順は良好です。

  • 安定性とパフォーマンスの両方の観点から、アップグレードされたMySQL/MariaDBを本当に取得する必要があります。 14.04に同梱されているものは何でも悪い考えです

  • スチュワートが述べたように、14.04から16.04の間に行われたlotの修正があります。これらのチップはIntelチップとは異なります。それらのアプリケーションのチューニングは異なり、数年にわたって行ってきた作業に依存しています。これらの修正は、カーネルの修正から電力スケーリング、より良いコードを生成するためのコンパイラの改善にまで及びます。

第二に、SugarCRMでどのワークロードをテストしているかわかりません。 IBMには(現在はやや古くなっています) ホワイトペーパー があり、PowerでSugarCRMを実行すると、Intelシステムよりもはるかに高いスループットが維持されることが示されています。 興味のあるベンチマークを明確にする必要があります。

第三に、システム設定を確認する必要があります。一般的なものを次に示します。

  • Apacheは、ファイルmutexの代わりにpthread mutexを使用するように設定されていません(新しいUbuntuバージョンで修正済み)

  • PHPとApacheは、Powerシステムには小さすぎるスレッドプールを使用するように設定されています。

  • P8の1コアとx86の4コアを比較しているようです。 P8にはコアとハードウェアスレッドの両方があります(ハイパースレッディングのように、コアごとに2つのハードウェアスレッドではなく最大8つ)ので、少し混乱する可能性があります。あなたがすべき:

    • power VM 4コア。可能であれば、ハイパーバイザーに静的に割り当てられていることを確認してください(コアはゲスト専用です)。
    • これらの4つのコアをSMT-8モードではなくSMT-4モードに設定します。これにより、スクリプト言語が大幅に向上する傾向があります。

最後に、マシンの購入時からIBMサポートまたは営業担当者にアクセスできる場合は、彼らに連絡してください。彼らは何人かの専門家を引き入れることができるかもしれません。

2
dja

パフォーマンス測定を行っているため、4コアを必要に応じて専用プロセッサーを使用してHMCからパーティションを作成します(専用を使用することにより、このテストワークロードからIBM iワークロードを分離します)。前述のように、スレッド数はx86の場合とは異なり、Powerではなくスレッドである必要があります(推奨されるようにSMT-4を設定しても、コアあたりのスレッドの量は2倍になります)電源オン)。

1
cmaciel