2012-11-11 7 views
5

私は、2基のクアッドコアXeon E5520 2.2GHz、24.0GB RAM、Erlang R15B02(SMP対応)のノードで実験を行っています。 Erlang VMで使用されるコアの数を制限して、スケーラビリティをテストするためにコアを一時的に無効にし、段階的に数を増やすことができるかどうかは疑問です。erlangで使用されるコア数を制限する

私はこのノードにルートアクセス権を持っていません。だから私は、erlまたはErlangコードにパラメータを指定することによって、いくつかの方法を期待しています。

答えて

13

Erlangが+Sオプションで使用するコアの数をerlに制限することができます。これにより、Erlangが作成するスケジューラーカーネルスレッドの数を設定できます。詳細は、erl man pageを参照してください。

アーランlinked-in port driversnative implemented functions(のNIF)は、独自のスレッドを作成するため、標準のドライバまたはのNIFのどれもこれもしないのにErlangのプロセスは、+Sオプションで指定されたスレッドとは独立して使用されますどのように多くのコアに影響することができ、両方のことに注意してください。また、+Aオプションをerlに設定すると、使用するコア数に影響する可能性のあるドライバ用の非同期スレッドのプールが作成されます。デフォルトでは、非同期スレッドプールには10スレッド(Erlang/OTPバージョンR16B以前はデフォルトで空でした) 。

+0

ありがとうございました! '+ S 4:2'と' + S 2:2'の違いを説明してください( 'Schedulers'は' SchedulerOnline'よりも大きいです)? –

+1

'+ S 2:2'は2つのスケジューラを必要とし、それらの両方をオンラインにしたいことを意味します。 '+ S 4:2'は、4つのスケジューラーが必要だが、それらのうち2つだけをオンラインにしたいということを意味する。また、実行時に、アプリケーションは 'erlang:system_info/1'と' erlang:system_flag/2'関数を介してスケジューラとオンラインスケジューラの数を調べて変更することができます。 [system_info/1](http://www.erlang.org/doc/man/erlang.html#system_info-1)および[system_flag/2](http://www.erlang.org/doc)のマニュアルを参照してください。 /man/erlang.html#system_flag-2)を参照してください。 –

+0

しかし、オンラインスケジューラの数は同じなので、異なるスケジューラ値の影響は何ですか? –

関連する問題