[lxc-devel] [patch 1/1] overwrite /proc/meminfo informations with a fuse
Daniel Lezcano
daniel.lezcano at free.fr
Wed Sep 2 11:52:12 UTC 2009
Krzysztof Taraszka wrote:
> 2009/9/1 Daniel Lezcano <daniel.lezcano at free.fr>
>
>> This patch allows to display information related to the cgroup
>> in /proc/meminfo.
>>
>> It is a first try, there is certainly a clever way to do that but
>> it is just to play with it.
>>
>> Compile with:
>>
>> make lxcfs CFLAGS="-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27"
>> LDFLAGS="-lfuse"
>>
>> Launch a container as root with:
>>
>> lxc-execute -n foo /bin/bash
>>
>> Set 256MB of memory:
>>
>> echo 268435456 > /cgroup/foo/memory.limit_in_bytes
>>
>> And finally mount /proc/meminfo:
>>
>> ./lxcfs -odirect_io /proc/meminfo
>>
>> And the results are:
>>
>> cat /proc/meminfo:
>> ==================
>>
>> MemTotal: 262144 kB
>> MemFree: 255991 kB
>>
>> top:
>> ====
>>
>> top - 23:52:17 up 2:43, 2 users, load average: 0.00, 0.00, 0.00
>> Tasks: 6 total, 1 running, 5 sleeping, 0 stopped, 0 zombie
>> Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0
>> Mem: 262144k total, 6153k used, 255991k free, 0k buffers
>> Swap: 0k total, 0k used, 0k free, 0k cached
>>
>> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>> 1 dlezcano 20 0 8136 484 408 S 0.0 0.2 0:00.00 lxc-init
>> 2 dlezcano 20 0 90112 1764 1304 S 0.0 0.7 0:00.08 bash
>> 29 root 20 0 121m 1392 1128 S 0.0 0.5 0:00.05 su
>> 30 root 20 0 89984 1696 1328 S 0.0 0.6 0:00.05 bash
>> 68 root 20 0 37628 888 544 S 0.0 0.3 0:00.00 lxcfs
>> 74 root 20 0 14748 1040 868 R 0.0 0.4 0:00.02 top
>>
>> free:
>> =====
>>
>> total used free shared buffers cached
>> Mem: 262144 6153 255991 0 0 0
>> -/+ buffers/cache: 6153 255991
>>
>>
>> To be extended ...
>>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano at free.fr>
>> ---
[ ... ]
> Great. Let me see.
> Oh, forgot about memsw? "swap in use" is: memory.memsw.usage_in_bytes -
> memory.usage_in_bytes. "available swap" is: memory.memsw.limit_in_bytes -
> memory.limit_in_bytes because memsw is memory + swap.
Yep, thanks I will add it.
I would like to find a efficient way to generalize this fs on the whole
/proc and provide a framework to add the files to be virtualized one by one.
For example, we don't want to hide /proc/self or /proc/<pid> but the
mount will hide this informations, so we need to do some kind of
"file-proxy", especially for displaying directory content.
More information about the lxc-devel
mailing list