[erlang-questions] performance issue with cowboy

Shayan Pooya <>
Sun Nov 9 15:37:53 CET 2014


Hey Danil,

Thanks for the response. Everything is buffered in the kernel-space anyway
and there is no use for a user-space buffer in this case.

On Sat, Nov 8, 2014 at 5:44 PM, Danil Zagoskin <> wrote:

> Hi!
>
> Did you do any profiling?
>
> Reading the patch I noticed that you have replaced single
> [Mochiweb's Req:stream_body + file:write] with iterative [cowboy_req:body +
> file:write]. So your process now writes to file (possibly blocking on it)
> every MTU (typically 1.5K) bytes instead of single write — about 70K
> syscalls per second on gigabit network.
> I'd suggest adding a large buffer (e.g. 1 MB) to not access the file too
> often.
>
>
> On Sun, Nov 9, 2014 at 12:41 AM, Shayan Pooya <> wrote:
>
>> Hello,
>>
>> I have ported Disco to use cowboy instead of mochiweb. Mochiweb has been
>> quite stable and we did not have any issues with it recently. However,
>> cowboy uses the sendfile syscall which avoids a lot of overhead when
>> serving static files and I thought that could lower the memory footprint of
>> Disco when serving large files and free up some cycles. Disco+cowboy is now
>> fully functional and all of the integration tests pass (minus some minor
>> missing features).
>>
>> I wanted to get a sense of the performance before making the switch and
>> used a couple of different Disco jobs (which pressure the web-servers) to
>> do a comparison and the Disco version with cowboy consistently takes 10 to
>> 20 percent longer to finish. I haven't done much for optimizing the usage
>> of cowboy yet, but the micro-benchmarks that I find on the web are contrary
>> to what I am seeing here and I wanted to know if anyone can offer some
>> guidance for getting better results with cowboy.
>>
>> I am using cowboy 1.0.1 and the Cowboy patch for Disco is available at
>> https://github.com/pooya/disco/commit/5499d696438 just in case.
>>
>> Regards.
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>
>
> --
> Danil Zagoskin | 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20141109/da26f6a3/attachment.html>


More information about the erlang-questions mailing list