web-dev-qa-db-ja.com

NDBDとMySQLによるすべてのCPUコアの使用

NDBクラスターエンジンを搭載したMySQLのフォークであるMariaDBを実行しています。クラスターには、1つのmysqlノードと2つのndbデータノードが含まれます。クラスターのベンチマークを行っている間、CPUのボトルネックを作成しようとしていますが、mysqlノードには合計8つのコアがあります。ただし、mysqldプロセスは1つから2つのコアのみを使用し、3つを超えるコアを使用しません。スレッドとウェアハウスを増やしてみましたが、すべてのCPUコアを利用するのに役立ちませんでした。これを可能にする方法はありますか?増やすためにどのシステム変数に焦点を合わせる必要がありますか?

任意の考えや提案をいただければ幸いです。

3
lampscholar

解決策はかなり単純です: 同じDBサーバーでmysqldを複数回実行します!!!

各mysqldを異なるポートで実行するように割り当てます。

OSは、複数のmysqldプロセスをコア全体に分散します。

更新

Mysql-proxyを使用してポート転送をジェリーリグする必要がある場合があります

10.240.35.180がSQLノードであると仮定します

  • sQLノードのポート3307でmysqlを起動します
  • sQLノードのポート3308でmysqlを起動します
  • sQLノードのポート3309でmysqlを起動します
  • sQLノードのポート3310でmysqlを起動します

Mgntノードで、mysql-proxyの4つのインスタンスを設定します

  • mysql-proxy 10.1.1.6〜10.240.35.180ポート3307
  • mysql-proxy 10.1.1.7〜10.240.35.180ポート3308
  • mysql-proxy 10.1.1.8〜10.240.35.180ポート3309
  • mysql-proxy 10.1.1.9〜10.240.35.180ポート3310

次に、IP 10.1.1.6〜10.1.1.9をconfig.iniに配置し、mysqlクラスターを起動します。これは非常に大きな問題のように聞こえますが、mysqldを複数のコアで実行するための唯一のショットです。

ところで:2011年8月10日に戻って、 誰かがServerFaultで同様の質問をし、MySQL Clusterチームから詳細な説明をしました

試してみる !!!

2
RolandoMySQLDBA

どのバージョンのMySQLClusterがMariaDBとともに配布されているのかわかりません。これは、回答に影響を与える可能性があります。

一般に、クラスターに接続されたMySQLDインスタンスからより多くのスループットを得るには、MySQLDインスタンスから複数のクラスター接続を使用することをお勧めします。これはこのブログで説明されています: http://johanandersson.blogspot.com/2008/02/mysql-cluster-features-what-they-are.html#multiconnect

この機能はmysqlcluster 6.3で追加されているため、MariaDBがそのバージョンを配布している場合は、それを使用できるはずです。

1
Frazer Clement