[erlang-questions] Erlang in the mist

Angel Alvarez clist@REDACTED
Fri Dec 11 20:44:06 CET 2009


El Viernes, 11 de Diciembre de 2009 Joe Armstrong escribió:
> I want to build an Erlang mist.
> 
> I want to experiment with "many" Erlangs
> on one machine (note *not* distributed Erlang).
> 
> So I need to be able to start and stop the Erlangs and manage them.
> 
> Questions:
> 
>    - Anybody got any code that does this?
>    - How many Erlangs per Gigabyte can I start? (assume they just
> start and do nothing)
>    - Where does standard output go when there is nobody to watch?
> 
> 
> /Joe

Some days ago, the lists was discussing about massive erlang distribution "problems"
(well in fact someone said more than 100 erlang VMs is not common but i think someone 
will eventually require it).

I was thinking about a common scenario in order to compare results and this required a common script
just to lunch a lot of erlang VMs so you could test and measure distribution on one node at least).

Ive just seen a i7 on media mark so maybe Intel SCCS is not so far...

But a bunch of erlangs VMs on one node seems like waste of RAM mainly IMHO for:

- Now one VM can drive several CPUS up to maybe 16 cores or so

- Spawning a lot of erlang OS process is a bad unles the one VM can fork other VMs and let the OS do page sharing.

I was thinking something like a very big node with far more that 4 GB RAM and 16 or more CPUS where  1 erlang 32bit
cant fully use all resources but spawning many VMs in not optimal as you lose page sharing ..

Im testing usage like this...

for a in $(seq 1 100) do erl -sname node$a -noshell -detached -setcookie abcd1234 +A 16 +K true ; done

and controlling those vms with

for a in $(seq 1 100) ; do /usr/lib/erlang/lib/erl_interface-3.6.2/bin/erl_call -v -h node0 -sname node$a -c abcd1234 -q; done              

just to see memory usage 

Can Linux optimize two independent invocation of one process by "copy on write" tricks or you need those processes
being father and children by means of fork call?

with something like "erl -fork 20 ..." you could fork another 20 instances of erlang (standalone or distributed) and enjoy of page sharing
between all instances. You can fully utilize all cores without over exercise erlang schedulers and cope all memory beyond 4GB with 32bit 
VMs instances...

with this approach you can test mist or cloud or whatever gas you want even in a laptop ...

The next thing will be to launch 100 instances and run a ring test...


> 
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
> 
> 



-- 
No imprima este correo si no es necesario. El medio ambiente está en nuestras manos.
->>-----------------------------------------------
    Clist UAH a.k.a Angel
---------------------------------[www.uah.es]-<<--

MySQL4: Bien, Usa transacciones solo si no necesitas velocidad. 


More information about the erlang-questions mailing list