Help us understand the problem. What is going on with this article?

Elixirでプロセス20万くらい作ってみた

More than 3 years have passed since last update.

Elixirでプロセス20万位作ってみた

Elixirの下のErlang VMは軽量プロセスという仕組みを使って、並列プログラミングをサポートしている。ErlangのプロセスはOSのプロセスとは異なり、VM内でプロセスを切り替えている。

erlangやElixirではプロセスの使用を勧められる。

実際、どのくらいのプロセスが生成出来るか調べてみた。

process limitの引き上げ

20万プロセスまで生成出来た。それ以上はデフォルトのprocess limit に引っかかって起動出来なかった。erl +P 1000000 でprocess limit をあげられるそうだが、erlang r18からそのオプションは無効化されたそうで、何を指定すれば、process limitの上限をあげられるかわからなかった。

追記: erlang r18で+P オプションは無効化されてないそうです。

追記:hayabusa333さんが、process_limitの上げ方を調べてくれた。 http://d.hatena.ne.jp/hayabusa333/20151104/elixir_erlang

export ELIXIR_ERL_OPTIONS="+P 1000000"
iex --sname bar@localhost --cookie foo -S mix run -e "ManyProcessFactory.main"

このように、ELIXIR_ERL_OPTIONSを使えばprocess_limitを増やせるようだ。
メモリが少ないので、あまり多くのプロセスを立ち上げると、erlのvmがcrashした。
awsで多めのメモリで試してみる。

ex_topを使ってerlang VMの様子を見る

ex_topというツールを使えば exlixirでtopみたいなものを見ることが出来る。

https://github.com/utkarshkukreti/ex_top

実行結果

20万プロセスを生成し、CPUも上手く分配して使えられているようだ。

使用したソースコード

https://gist.github.com/shibacow/86c6eba46d12b9f0d395

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away