[erlang-questions] erlang smp on aix
Fri Sep 2 03:42:51 CEST 2011
No, the kernel poll is not supported on AIX.
AIX has pollset interface like epoll but seems can not be used by erts. Is this the reason of thread_waitlock?
Our test scenario is quite simple. Create 1000 erlang processes or more to execute our main function repeatedly. This function do nothing special but call a linkded-in driver with port_control/3 and do some template rendering then return. The whole function does not have any IO operations.
During the test on a 2 cores AIX, we found no thread_waitlock() call in the strace log, which was full of poll() call.
With same test scenario on a 4 cores Centos with kernel-poll off, there is no sys call in the strace log(even without poll() call). Cpu will be consumed perfectly and we can gain quite high system throughput.
But when migrating to 4cores or 8cores AIX, thread_watilock() appears and there is lots of context switches according to vmstat. As a result, the throughput drop dramatically compared with Centos.
So, what is role of poll() in the scenario, or in the erlang processes scheduling?
在 2011-9-2，上午12:51， Jon Watte 写道：
> Did you enable kernel_poll? And does AIX actually support a suitable kernel polling mechanism (like epoll, etc)?
> Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable.
> On Thu, Sep 1, 2011 at 3:01 AM, caox <caox@REDACTED> wrote:
> we have a application used to run on centos but now we want to migrate it to AIX. During the test on Aix, we found the cpu scaling of the system is quite disappointing. With 8 cores and erlang smp auto, there were very high system cpu consumption and lots of thread_wait_lock call in the truss(strace) log, which would not appear on centos under the same test scenario. And the sys call will disappear if we turn smp off.
> So we guess there is something wrong with smp on Aix, perhaps caused by the schedulers switching. But we don't know where the thread_wait_call is from and what it is for.
> By the way, it is quite strange that the smp description of erl shell would be smp32:8 with smp auto on the 8 cores aix.
> Is there any hint to fix the problem? Appreciate your help.
> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions