tag:blogger.com,1999:blog-14455177.post3017157982589715877..comments2024-03-07T18:57:25.977+01:00Comments on Mikael Ronstrom: MySQL Cluster run-time environment: Part 3: Configuration recommendationsMikael Ronstromhttp://www.blogger.com/profile/07134215866292829917noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-14455177.post-72186842885762359382015-05-07T12:04:39.037+02:002015-05-07T12:04:39.037+02:00The benefits of cpubind as you notice is that you ...The benefits of cpubind as you notice is that you get full control of the thread where it executes and can even use tools like top to check how much load the thread uses.<br />cpuset has a different advantage in that it makes it possible for the OS to move the thread around a bit. This can be advantageous if the CPUs are used for other purposes as well (e.g. interrupt, other programs). It can also be helpful if we want to use more than one thread per CPU.<br />So in the example 18,19,42,43 are used for all IO threads (can be a few of those), for the main thread, the rep thread and the watchdog thread (also includes a few TCP connect threads).<br />There is a balance between giving all responsibility to the OS (no binding at all) and keeping all responsibility to yourself (using cpubind) where cpuset can be an interesting way of meeting this balance.<br />What is appropriate for your workload depends on the need of monitoring, other applications running on the same machine.<br />In many cases cpuset and cpubind gives very similar results but cpuset can make the behaviour more reliable when other applications cause CPU overload.Mikael Ronstromhttps://www.blogger.com/profile/07134215866292829917noreply@blogger.comtag:blogger.com,1999:blog-14455177.post-24111595444228206702015-05-07T06:14:06.246+02:002015-05-07T06:14:06.246+02:00Hi Mikael,
where is the benefit of configuring 12...Hi Mikael,<br /><br />where is the benefit of configuring 12 thraeds over a set of 12 CPUs vs. binding theses 12 thraeds to the 12 CPUs?<br /><br />In your example, you are proposing this for tc, send and rcv:<br />ThreadConfig="ldm={count=12,cpubind=0-11},tc={count=4,cpuset=12-17,36-41},send={count=4,cpuset=12-17,36-41},recv={count=4,cpuset=12-17,36-41},io={cpuset=18-19,42-43},main={count=1,cpuset=18-19,42-43},rep={count=1,cpuset=18-19,42-43},wd={cpuset=18-19,42-43}"<br /><br />Wouldn't binding make more sense here, as I'd be able to monitor, which thraed loads the system? <br /><br />ThreadConfig="ldm={count=12,cpubind=0-11},tc={count=4,cpubind=12,13,14,15},send={count=4,cpubind=16,17,36,37},recv={count=4,cpubind=38,39,40,41},io={cpuset=18-19,42-43},main={count=1,cpuset=18-19,42-43},rep={count=1,cpuset=18-19,42-43},wd={cpuset=18-19,42-43}"<br /><br /><br />Additionally, we would not take the disadvantage from restarting a thraed on a new CPU, after OS might have moved it...<br /><br /><br /><br />Thanks StefanStefan Auweilernoreply@blogger.comtag:blogger.com,1999:blog-14455177.post-32770059844126085582014-04-04T13:17:30.638+02:002014-04-04T13:17:30.638+02:00Hi Mikael,
I found your 3 posts to be a very good...Hi Mikael,<br /><br />I found your 3 posts to be a very good & detailed read regarding "thread management" with ndbmtd. Is there any way to inspect a data node which threads are the current bottleneck and should be tuned?<br /><br />We have a write heavy 4 node cluster and experience unpredictable response times for SELECT queries querying exactly the same dataset over and over (varying from 10ms to 1.5s) - so we plan to either scale up (add cpus) or scale out (add more nodes) - this depends on how we could tune the current situation with ThreadConfig since we still use MaxNoOfExecutionThreads.<br /><br />Thanks!Christian Ehmighttps://www.blogger.com/profile/07995777313234020047noreply@blogger.com