<div dir="ltr">Right now I fight with problem of streaming 10 Gbit/s of video and more from single server.<div><br></div><div>I have met different problems (mostly about locking into single process like with file:read_file), </div>
<div>but right now I have one question, it is about memory allocation.</div><div><br></div><div>I've started strace against one of threads running scheduler and saw that it makes lot of mmap/munmap.</div><div><br></div>
<div>For example during second 1376487042 it has called mmap 72 times with sizes 1052672, 2101248.</div><div><div><br></div><div>Such lines are very interesting for me:</div><div><br></div><div>1376487042.167246 mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe8f49bf000</div>
<div>1376487042.174690 munmap(0x7fe90c6ff000, 1052672) = 0</div><div><br></div></div><div><br></div><div>erlang asked system for one megabyte of memory and after 7 milliseconds returned it back.</div><div><br></div><div>To make it clear: erlyvideo is reading 700-800 megabytes per second from several hard drives, repack them a bit and sends to network via TCP sockets.</div>
<div><br></div><div><br></div><div><br></div><div>It is possible to tell erlang that it can use 20GB or 30 GB or ram and don't return it back at all?</div><div><br></div><div>I suppose that such often allocation/deallocation leads to high cpu usage of process kswapd0 that (perhaps) tries to do something with such big amount of freed pages.</div>
<div><br></div><div>I have looked at erts_alloc.html page. Well, it is scary a bit, just like when I've looked into the airplane cabin. Should I change any options from this page or I shouldn't touch memory allocator at all?</div>
<div><br></div><div><br></div></div>