mysqld + cluster 7.4.9: geting the maximum out of a single MySQL Server (API) node
Experts,
I'm asking your experties aout configuring mysql Server API node for havy connection and query rates.
I have a cluster with 16 Data nodes,
each has 2 CPU Socket
18 CPU cores
and Hyperthraeding activated
So it adds up to 72 threads, where I've applied this threadconfig:
ThreadConfig=ldm={count=24,cpubind=2-13,20-31,spintime=100},main={cpubind=37},io={cpubind=37},rep={cpubind=55},tc={count=8,cpubind=14,15,32,33,50,51,68,69,realtime=1},recv={count=4,cpubind=32,33,70,71},send={count=4,cpubind=16,17,52,53}
and
NoOfFragmentLogParts=24
I think, we are pretty fine here for our load.
What we are trying to figure is, how to set up the MYSQL Server API nodes:
We have about 15000 clients/processes, connecting from other servers within our system, which gives us at leas two boundaries:
a) the reasonable maximum connection, a single mysqld could posibly handle (We know, that we have about 15% of our current connections to a particular MYSQLd aver working, 85% are idle....)
b) a maximum number of 255 nodes within a NDB cluster
I have 8 of the above described systems, exclusively assigned to be th MYSQL Server API nodes.
I'm running Solaris 11.3 and we are using CPU Sets and we are organizing the IRQ handling.
Which configuration would make the best use of each of the 8 boxes?
1. having one (1) MYSQLd with max_connections=4000 and 16 or even more connections to the cluster (ndb-cluster-connection-pool=16)
2. having several MYSQLd on different ports having less max_connections and less connections to the cluster (e.g. 4 mysqld, having max_connection=1000 and ndb-cluster-connection-pool=4 connections each)
Thanks for your ideas.
Stefan