4

現在、サーバーをハードドライブでのMyISAMの実行からSSDでのInnoDBに切り替えています。

ベンチマークテーブルとして3,800,000行(16GB)のテーブルがあります

私のサーバーのセットアップ:

  • Ubuntu 64 + Nginx + MySQL 5.5+..。

私は非常にテストしたい2つのことを念頭に置いています:

  • ハードドライブからSSDへの切り替えが同時実行性にどのように影響するか
  • MyISAMからInnoDBへの切り替えが同時実行性にどのように影響するか

ツールと戦略の両方について質問があります。

  • 私は主に並行性に関心があるので、テストを行うためにどのツールを使用する必要がありますか?私はSiegeで遊んだことがありますが、とても簡単に遊ぶことができました。しかし、私のニーズにより適した、さらに強力なLinuxソフトウェアがたくさんあるはずだと思います。
  • テスト戦略はどのように見えますか?戦略の選択は、私が使用することを選択したツールと密接な関係がある可能性があることを理解しています。たとえば、Siegeで遊ぶときは、MySQLの大規模な操作を実行するPHPスクリプトを作成し、サーバーにアップロードし、スクリプトURLをパラメーターとしてSiege(ローカルラップトップにインストールされている)に渡して、Siegeに任せる必要があります。同時トラフィックをシミュレートします。
4

3 に答える 3

2

LinuxでMySQLストレージのパフォーマンスをベンチマークするときに覚えておくべき重要なことはキャッシュです。私自身も同じテストケースに興味がありました。ユーザーが遅いクエリについて不平を言うとき、それはいつも面白いです。彼らはあなたに電話して再実行しますが、クエリキャッシュがあるため、50分以上のクエリが30秒で完了するようになりました。常に実行します

mysql> reset query cache;

MySQLでクエリを最適化しようとするとき。そうは言っても、SSDを従来のスピンドルと比較する場合、もう1つのステップがあります。それはディスクキャッシュです。OSが独自にディスクをメモリにキャッシュしている場合、アクセス時間またはIOPSを比較することは困難です。ディスクキャッシュをクリアするには、シェルから次のコマンドを実行します。

$ sync && sysctl -w vm.drop_caches=3

これらのコマンドは、各ベンチマーククエリの前に実行されるため、7k2SATAスローポークと比較してSSDの可能性を理解するのに役立ちます。キャッシュをフラッシュせずに同じクエリを2回実行し、クエリ時間を監視して、これを確認します。この時点で、インデックスがある場合とない場合のクエリと、可能であれば結合を試すことをお勧めします。各クエリでEXPLAINPLANを使用して、インデックスが使用されていることを確認します。インデックスファイルとデータファイル間の読み取りのランダムアクセスは、低速のディスクのボトルネックを明らかにします。my.cnfがSSDベンチマークとプラッターの間で一貫していることを確認してください。シンプルなデスクトップOCZSSDでいくつかのことをテストしたところ、クエリのパフォーマンスが7200rpmSATAディスクの約10倍の速さで向上していることがわかりました。SSDベースのトランザクションデータベースでは、SSD TRIMと組み合わせたデータベースの頻繁な圧縮はディスクの寿命に影響を与える可能性があるため、OPTIMIZETABLEを使用する場合は注意が必要です。それは理論的ですが、私はこれを裏付ける証拠をまだ見ていません。

お役に立てれば!磁気HDがバックアップメディアとしてテープに取って代わり、ほとんどのハードウェアでSSDに完全に取って代わられる日が待ちきれません。

于 2012-07-31T14:44:04.103 に答える
1

一般的なテストは問題ありませんが、実際の負荷だけがソフトウェアとハ​​ードウェアの構成の違いを教えてくれます。たぶん次のことを試みてください:

  1. 本番サーバーからデータベースをダンプします
  2. 本番サーバーからすべてのクエリをキャプチャします(それに低速クエリログを使用し、long_query_time = 0に設定します)
  3. データベースをテスト構成にロードし、低速のクエリログを再生します(pt-log-playerを使用)。
  4. ここでも、long_query_time=0でテストサーバーからすべてのクエリをキャプチャします。
  5. pt-query-digestを使用して遅いクエリログの結果を分析します。

ここでは、Percona Toolkit for MySQLのツールを参照しています(一部のツールにはPercona Serverが必要な場合がありますが、よくわかりません)。

于 2012-07-12T09:52:58.563 に答える
1

SSDのタイプと品質は大きな違いを生みます。サーバーがビジー状態の場合は、mysqlにデスクトップSATASSDを使用しないでください。期待するパフォーマンスの向上は得られません。

ここにいくつかの素晴らしい記事があります:http ://www.mysqlperformanceblog.com/search/innodb+log+file+ssd/

于 2012-07-12T18:46:27.963 に答える