[erlang-questions] couchdb performace 10x: using NIF for file io

Dave Smith <>
Sun Oct 24 19:12:29 CEST 2010


On Sun, Oct 24, 2010 at 8:43 AM, Joel Reymont <> wrote:
>
> On Oct 24, 2010, at 3:30 PM, Martin Scholl wrote:
>
>> I'd guess this is because the NIF blocks the current VM thread instead
>> of a dedicated I/O thread.
>
> +A 4 is used by default and using +A 16 reduces the spikes

+A anything won't help you anymore. You are now doing the I/O on the
VM scheduler thread and blocking ANY erlang code (on that scheduler)
while the file op runs. This will certainly make the benchmarks look
faster until typical circumstances; I'd be very curious to see what
happens when you get into an overload situation and spend all your
time blocked on file I/O while incoming client requests pile up. Since
your erlang code won't be running all that often, things could get
dicey.

Nonetheless, an interesting experiment.

D.


>
> http://graphs.mikeal.couchone.com/#/graph/62b286fbb7aa55a4b0c4cc913c011c14
>
> This is the latest 2.66ghz Core i7 MacBook Pro, 8gb memory and a 2 year-old 256gb Apple SSD.
>
> The number of cores is reported as 2 but, obviously, a lot of threads end up waiting.
>
> ---
> http://twitter.com/wagerlabs
>
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>


More information about the erlang-questions mailing list