<div dir="ltr"><div>Almost all of the file operations in Disco use raw mode.<br></div>For the functions that do not have raw mode, we use the prim_file module directly.<br><br>Regards.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 9, 2014 at 9:45 AM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sure but everything you do through file:* goes through a single Erlang process except if you use the 'raw' option.<span class=""><br>
<br>
On 11/09/2014 04:37 PM, Shayan Pooya wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Hey Danil,<br>
<br>
Thanks for the response. Everything is buffered in the kernel-space<br>
anyway and there is no use for a user-space buffer in this case.<br>
<br>
On Sat, Nov 8, 2014 at 5:44 PM, Danil Zagoskin <<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a><br></span><span class="">
<mailto:<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a>>> wrote:<br>
<br>
    Hi!<br>
<br>
    Did you do any profiling?<br>
<br>
    Reading the patch I noticed that you have replaced single<br>
    [Mochiweb's Req:stream_body + file:write] with<br>
    iterative [cowboy_req:body + file:write]. So your process now writes<br>
    to file (possibly blocking on it) every MTU (typically 1.5K) bytes<br>
    instead of single write — about 70K syscalls per second on gigabit<br>
    network.<br>
    I'd suggest adding a large buffer (e.g. 1 MB) to not access the file<br>
    too often.<br>
<br>
<br>
    On Sun, Nov 9, 2014 at 12:41 AM, Shayan Pooya <<a href="mailto:shayan@liveve.org" target="_blank">shayan@liveve.org</a><br></span><span class="">
    <mailto:<a href="mailto:shayan@liveve.org" target="_blank">shayan@liveve.org</a>>> wrote:<br>
<br>
        Hello,<br>
<br>
        I have ported Disco to use cowboy instead of mochiweb. Mochiweb<br>
        has been quite stable and we did not have any issues with it<br>
        recently. However, cowboy uses the sendfile syscall which avoids<br>
        a lot of overhead when serving static files and I thought that<br>
        could lower the memory footprint of Disco when serving large<br>
        files and free up some cycles. Disco+cowboy is now fully<br>
        functional and all of the integration tests pass (minus some<br>
        minor missing features).<br>
<br>
        I wanted to get a sense of the performance before making the<br>
        switch and used a couple of different Disco jobs (which pressure<br>
        the web-servers) to do a comparison and the Disco version with<br>
        cowboy consistently takes 10 to 20 percent longer to finish. I<br>
        haven't done much for optimizing the usage of cowboy yet, but<br>
        the micro-benchmarks that I find on the web are contrary to what<br>
        I am seeing here and I wanted to know if anyone can offer some<br>
        guidance for getting better results with cowboy.<br>
<br>
        I am using cowboy 1.0.1 and the Cowboy patch for Disco is<br>
        available at <a href="https://github.com/pooya/disco/commit/5499d696438" target="_blank">https://github.com/pooya/<u></u>disco/commit/5499d696438</a><br>
        just in case.<br>
<br>
        Regards.<br>
<br>
        ______________________________<u></u>_________________<br>
        erlang-questions mailing list<br></span>
        <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><br>
        <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
<br>
<br>
<br>
    --<br>
    Danil Zagoskin | <a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a> <mailto:<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a>><span class=""><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
</span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br>
</font></span></blockquote></div><br></div>