[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] On unikernel size



Hi Anil,

Thanks a lot for the comments! We'llÂtry to useÂocamlclean


Regards,

Wassim H.

On Monday, November 23, 2015, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
Hi Wassim,

It's definitely possible to get the image size of MirageOS builds down from where they are right now. As background, there are two ways to build unikernel images:

- Native code compilation: this generates fast x86_64/ARM unikernels that link against the OCaml 'libasmrun' runtime to run as native executables. In this mode, touching a single module will link the whole thing in, even if only one function is used. Thus, as modules grow, the hello world library size also grows.

- Bytecode compilation: this generates portable bytecode that is interpreted by the 'ocamlrun' or 'libcamlrun' runtime. There exists a utility called 'ocamlclean' that does dead-code elimination that eliminates all unused functions: https://github.com/avsm/ocamlclean. This is how we got our sub-300k unikernels for DNS.

Now, we need to do a little work to get these back. Either a native code ocamlclean, or add a bytecode backend to the latest MirageOS (which is native code only). I suspect the easiest path is to build the bytecode backend in again, and then get ocamlclean working with the latest OCaml (shouldnt be hard), and then investigate a native code ocamlclean as a Pioneer Project.

regards,
Anil

> On 18 Nov 2015, at 23:05, Amir Chaudhry <amc79@xxxxxxxxx> wrote:
>
> Hello Wassim,
>
> There are likely further things that can be done to reduce image size but Iâm not sure of the status of that work. It might be time to revisit some of that to see where it stands.
>
> If you add an agenda item to the next MirageOS call (and join the call too) [1], then we can remember to discuss it!
>
> [1] https://github.com/mirage/mirage-www/wiki/Call-Agenda
>
> Best wishes,
> Amir
>
>> On 13 Nov 2015, at 22:05, Wassim Haddad <wmhaddad@xxxxxxxxx> wrote:
>>
>> Dear colleagues,
>>
>> A question please about the size of unikernel images:
>>
>> I built mirage console "hello world" and the stripped disk image size is 3.2 MBytes. The runtime memory required to run the image is ~ 9 MBytes. Is it possible to reduce futher the memory footprint?
>>
>>
>> Thanks much!
>>
>> Wassim H.
>> _______________________________________________
>> MirageOS-devel mailing list
>> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.