[erlang-questions] Erlang/OTP R13A has been released

Ulf Wiger <>
Wed Mar 18 09:11:42 CET 2009


Zvi wrote:
> Hi,
> 
> "Erlang R13A (erts-5.7) [smp:2:2] [rq:2] [async-threads:0]
> 
> Eshell V5.7  (abort with ^G)
> 1>"
> 
> 
> what's the meaning of "[smp:2:2]" and "[rq:2]" ?
> Does "[smp:2:2]" means two schedulers and two corresponding run queues?
> I guess "rq" is for "run queues" ?

I believe I have figured out that it's
[smp:Schedulers:SchedulersOnline], and "rq" indeed stands
for run-queues (well, I'm guessing. Can't find it documented.)

So with the +S Schedulers:SchedulersOnline, you can set
how many schedulers you want to be able to play with.
You can change the number of active schedulers, using
erlang:system_flag(schedulers_online, N), setting it to
a value between 1 and Schedulers (which can only be set
at boot time.)

Reading about this, I was a bit confused by one thing:
On erlang:system_flag(scheduler_bind_type, T), it says

"How schedulers are bound matters. For example, in low
load situations, the runtime system tries to migrate
processes to schedulers with low scheduler identifiers.
The more the schedulers are spread over the hardware,
the more resources will be available to the runtime
system in low load situations. "

Forgive me for being glib, but why does it matter at
all how I can optimize CPU usage at low load? (:
Ok, from an energy consumption POV, I guess it can make
a difference, but I've mainly come to think that as
long as there is excess CPU capacity, there is very
little reason to optimize things.

I would be much more interested in hearing how this
can make a different during high load, or hear a
more detailed explanation of why low-load optimizations
are important to me.

BR,
Ulf W
-- 
Ulf Wiger
CTO, Erlang Training & Consulting Ltd
http://www.erlang-consulting.com



More information about the erlang-questions mailing list