[erlang-questions] fast file sending - erlang & nginx

Morten Krogh <>
Sun Nov 21 21:25:49 CET 2010


Hi Robert

You mean mmap. I don't see how that would help. Either you have the file 
in a memory buffer when the request arrives, like you did in the example 
or you don't.
If you don't, sendfile should be the best call. If mmaping and sending 
on the socket, after getting the request, outperforms sendfile, then 
sendfile doesn't have a reason to exist.
Of course, you could also mmap in advance which is similar to reading 
the file in advance.
You still had a factor of 2 up to nginx, and that then cannot have 
anything to do with
how the files are read, but must have to do with the epoll/kqueue of the 
sockets, or with the speed of the erlang code,  including the parsing of 
the request header.

Do you have an idea of the speed of your header parsing? If you spend 
100 microseconds on that, it will explain part of the remaining 
difference. If you spend 1 microsecond, it is irrelevant.

Morten.


On 11/21/10 9:00 PM, Roberto Ostinelli wrote:
> 2010/11/21 Morten Krogh<>:
>> Hi Robert
>>
>> That was a big speedup. So what you can do, is to read all static files into
>> memory at server startup, and have some notification whenever the
>> directory changes.
> morten,
>
> thank you for your suggestion, but this is basically setting up a
> cache server, which is not what i want to do here.
>
> thus, i was trying to understand if the difference with nginx is
> because it uses nmap, or some other reason.
>
> cheers,
>
> r.
>
> ________________________________________________________________
> 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