Failed to create dirty cpu scheduler on virtual server

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Failed to create dirty cpu scheduler on virtual server

Alemuell
Hi there!

My issue: the requirement for installing some software I need is to have
rabbitmq running which depends on erlang. So my first step is to install
erlang. I'm working on a virtual server (!) which has Ubuntu 18.04 LTS
64bit running. I added the file
/etc/apt/sources.list.d/bintray.erlang.list with the following line:
"deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang". Then I
use apt to install erlang, which runs smoothly.

When I now try to start erlang on the command line I directly get:
"Failed to create dirty cpu scheduler thread 9, error = 11" (I can
provide erlang crash report if needed)

Searching for solutions for this issue already brought me to a
rabbitmq-discussion:
https://groups.google.com/forum/#!msg/rabbitmq-users/fQzBHvgL5rg/iW1S6ln6BwAJ
It seems to me, that I'm having exactly the same issue, but the solution
presented there is not working for me. Also I believe, that the issue is
related to erlang (since I don't even get to the point of installing
rabbitmq), thats why I wanted to post it on this erlang-list. The main
idea that the discussion in that rabbitmq-thread brings up, is, that the
issue is related to working on a virtual server: it seems that erlang is
not aware of the fact, that it can only use a limited amount of
cpu-ressources.

Does any one have an idea of how to fix that? I really don't understand
a thing about erlang nor rabbitmq. I just need them to work for another
software I want to use. Digging into docs of erlang is a bit
overwhelming to me and I don't really have an idea, where exactly I
would need to start looking. I have the feeling, that I would just need
to add some configuration file or something similar, so that erlang is
told, how many threads it should open (not calculating it by itself).

I would really much appreciate any help!

Best,

alemuell

Reply | Threaded
Open this post in threaded view
|

Re: Failed to create dirty cpu scheduler on virtual server

Jesper Louis Andersen-2
Try just running `erl` in the shell. If that fails, you can try toying with the flags +S +SDcpu and +SDio to control the amount of schedulers you have. As a conservative start you want these to be the number of available cores in the virtual machine. Check the limits in the virtual machine w.r.t. number of threads. You also have the +A parameter, which creates threads. So while the error occurs at the dirty scheduler thread spawn, it might be another thread pool using up your resources and imposing limits.

(Aside: your virtual machine would have far more trouble with a Go program if it limits threads)

On Fri, Mar 6, 2020 at 4:52 PM Alemuell <[hidden email]> wrote:
Hi there!

My issue: the requirement for installing some software I need is to have
rabbitmq running which depends on erlang. So my first step is to install
erlang. I'm working on a virtual server (!) which has Ubuntu 18.04 LTS
64bit running. I added the file
/etc/apt/sources.list.d/bintray.erlang.list with the following line:
"deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang". Then I
use apt to install erlang, which runs smoothly.

When I now try to start erlang on the command line I directly get:
"Failed to create dirty cpu scheduler thread 9, error = 11" (I can
provide erlang crash report if needed)

Searching for solutions for this issue already brought me to a
rabbitmq-discussion:
https://groups.google.com/forum/#!msg/rabbitmq-users/fQzBHvgL5rg/iW1S6ln6BwAJ
It seems to me, that I'm having exactly the same issue, but the solution
presented there is not working for me. Also I believe, that the issue is
related to erlang (since I don't even get to the point of installing
rabbitmq), thats why I wanted to post it on this erlang-list. The main
idea that the discussion in that rabbitmq-thread brings up, is, that the
issue is related to working on a virtual server: it seems that erlang is
not aware of the fact, that it can only use a limited amount of
cpu-ressources.

Does any one have an idea of how to fix that? I really don't understand
a thing about erlang nor rabbitmq. I just need them to work for another
software I want to use. Digging into docs of erlang is a bit
overwhelming to me and I don't really have an idea, where exactly I
would need to start looking. I have the feeling, that I would just need
to add some configuration file or something similar, so that erlang is
told, how many threads it should open (not calculating it by itself).

I would really much appreciate any help!

Best,

alemuell



--
J.
Reply | Threaded
Open this post in threaded view
|

Re: Failed to create dirty cpu scheduler on virtual server

Alemuell

Thanks Jesper, for the quick and helpful answer. Playing around with those flags did indeed help.

Am 07.03.20 um 11:08 schrieb Jesper Louis Andersen:
Try just running `erl` in the shell. If that fails, you can try toying with the flags +S +SDcpu and +SDio to control the amount of schedulers you have. As a conservative start you want these to be the number of available cores in the virtual machine. Check the limits in the virtual machine w.r.t. number of threads. You also have the +A parameter, which creates threads. So while the error occurs at the dirty scheduler thread spawn, it might be another thread pool using up your resources and imposing limits.

(Aside: your virtual machine would have far more trouble with a Go program if it limits threads)

On Fri, Mar 6, 2020 at 4:52 PM Alemuell <[hidden email]> wrote:
Hi there!

My issue: the requirement for installing some software I need is to have
rabbitmq running which depends on erlang. So my first step is to install
erlang. I'm working on a virtual server (!) which has Ubuntu 18.04 LTS
64bit running. I added the file
/etc/apt/sources.list.d/bintray.erlang.list with the following line:
"deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang". Then I
use apt to install erlang, which runs smoothly.

When I now try to start erlang on the command line I directly get:
"Failed to create dirty cpu scheduler thread 9, error = 11" (I can
provide erlang crash report if needed)

Searching for solutions for this issue already brought me to a
rabbitmq-discussion:
https://groups.google.com/forum/#!msg/rabbitmq-users/fQzBHvgL5rg/iW1S6ln6BwAJ
It seems to me, that I'm having exactly the same issue, but the solution
presented there is not working for me. Also I believe, that the issue is
related to erlang (since I don't even get to the point of installing
rabbitmq), thats why I wanted to post it on this erlang-list. The main
idea that the discussion in that rabbitmq-thread brings up, is, that the
issue is related to working on a virtual server: it seems that erlang is
not aware of the fact, that it can only use a limited amount of
cpu-ressources.

Does any one have an idea of how to fix that? I really don't understand
a thing about erlang nor rabbitmq. I just need them to work for another
software I want to use. Digging into docs of erlang is a bit
overwhelming to me and I don't really have an idea, where exactly I
would need to start looking. I have the feeling, that I would just need
to add some configuration file or something similar, so that erlang is
told, how many threads it should open (not calculating it by itself).

I would really much appreciate any help!

Best,

alemuell



--
J.