NDBクラスターエンジンを搭載したMySQLのフォークであるMariaDBを実行しています。クラスターには、1つのmysqlノードと2つのndbデータノードが含まれます。クラスターのベンチマークを行っている間、CPUのボトルネックを作成しようとしていますが、mysqlノードには合計8つのコアがあります。ただし、mysqldプロセスは1つから2つのコアのみを使用し、3つを超えるコアを使用しません。スレッドとウェアハウスを増やしてみましたが、すべてのCPUコアを利用するのに役立ちませんでした。これを可能にする方法はありますか?増やすためにどのシステム変数に焦点を合わせる必要がありますか?
任意の考えや提案をいただければ幸いです。
解決策はかなり単純です: 同じDBサーバーでmysqldを複数回実行します!!! 。
各mysqldを異なるポートで実行するように割り当てます。
OSは、複数のmysqldプロセスをコア全体に分散します。
更新
Mysql-proxyを使用してポート転送をジェリーリグする必要がある場合があります
10.240.35.180がSQLノードであると仮定します
Mgntノードで、mysql-proxyの4つのインスタンスを設定します
次に、IP 10.1.1.6〜10.1.1.9をconfig.iniに配置し、mysqlクラスターを起動します。これは非常に大きな問題のように聞こえますが、mysqldを複数のコアで実行するための唯一のショットです。
ところで:2011年8月10日に戻って、 誰かがServerFaultで同様の質問をし、MySQL Clusterチームから詳細な説明をしました 。
試してみる !!!
どのバージョンのMySQLClusterがMariaDBとともに配布されているのかわかりません。これは、回答に影響を与える可能性があります。
一般に、クラスターに接続されたMySQLDインスタンスからより多くのスループットを得るには、MySQLDインスタンスから複数のクラスター接続を使用することをお勧めします。これはこのブログで説明されています: http://johanandersson.blogspot.com/2008/02/mysql-cluster-features-what-they-are.html#multiconnect
この機能はmysqlcluster 6.3で追加されているため、MariaDBがそのバージョンを配布している場合は、それを使用できるはずです。