原文地址:[url]http://erlang-factory.com/upload/presentations/105/KennethLundin-ErlangFactory2009London-AboutErlangOTPandMulti-coreperformanceinparticular.pdf[/url]
Migration logic
* Strive to keep the maximum number of run able
processes equal on all schedulers
* Load balancing is performed by the scheduler that
first reaches its max limit of reductions.
1. Collect statistics about the maxlength of all
schedulers run-queues
2. Calculate the average limit per run-queue/prio and
setup migration paths
3. Give away jobs from schedulers over the limit,
Take jobs to schedulers under the limit
* Migrations occurs when the scheduler has finished
a job and goes on until the limit is reached or a new
loadbalancing takes place.
* There is also work-stealing , which occurs when a
scheduler gets an emty run-queue
* Running on full load or not!
If all schedulers are not fully loaded, jobs will be
migrated to schedulers with lower id’s and thus
making some schedulers inactive.
这个就是为什么R13的多处理器支持强好多的原因。
Migration logic
* Strive to keep the maximum number of run able
processes equal on all schedulers
* Load balancing is performed by the scheduler that
first reaches its max limit of reductions.
1. Collect statistics about the maxlength of all
schedulers run-queues
2. Calculate the average limit per run-queue/prio and
setup migration paths
3. Give away jobs from schedulers over the limit,
Take jobs to schedulers under the limit
* Migrations occurs when the scheduler has finished
a job and goes on until the limit is reached or a new
loadbalancing takes place.
* There is also work-stealing , which occurs when a
scheduler gets an emty run-queue
* Running on full load or not!
If all schedulers are not fully loaded, jobs will be
migrated to schedulers with lower id’s and thus
making some schedulers inactive.
这个就是为什么R13的多处理器支持强好多的原因。