[arch-general] most efficient way to get linux kernel statistics
Jonathan Horacio Villatoro Córdoba
lacho8713 at gmail.com
Sun Mar 6 15:47:23 UTC 2016
On Sun, Mar 06, 2016 at 03:23:33PM +0100, Andre Schmidt wrote:
> hello archers,
>
> thought i ask here first, before i try some kernel mailing list.
>
> i'm writing (for fun) a tiny daemon that sends linux usage (cpu, mem, net, etc.) statistics as efficiently as possible to another machine, repeatedly, to get "live" data.
>
> at the moment i'm simply sending /proc files, but they sometimes have too much data. so was wondering if there is a more efficient way to get (only parts of) the data thats available in /proc?
>
> for example, /proc/meminfo has all this info:
>
> MemTotal: 8051660 kB
> MemFree: 6046020 kB
> MemAvailable: 6843080 kB
> Buffers: 109116 kB
> Cached: 708336 kB
> SwapCached: 0 kB
> Active: 1332416 kB
> Inactive: 455428 kB
> Active(anon): 971040 kB
> Inactive(anon): 22340 kB
> Active(file): 361376 kB
> Inactive(file): 433088 kB
> Unevictable: 16 kB
> Mlocked: 16 kB
> SwapTotal: 1048572 kB
> SwapFree: 1048572 kB
> Dirty: 16 kB
> Writeback: 0 kB
> AnonPages: 970412 kB
> Mapped: 323384 kB
> Shmem: 23008 kB
> Slab: 71760 kB
> SReclaimable: 44860 kB
> SUnreclaim: 26900 kB
> KernelStack: 6544 kB
> PageTables: 22924 kB
> NFS_Unstable: 0 kB
> Bounce: 0 kB
> WritebackTmp: 0 kB
> CommitLimit: 5074400 kB
> Committed_AS: 3487604 kB
> VmallocTotal: 34359738367 kB
> VmallocUsed: 0 kB
> VmallocChunk: 0 kB
> HardwareCorrupted: 0 kB
> AnonHugePages: 413696 kB
> HugePages_Total: 0
> HugePages_Free: 0
> HugePages_Rsvd: 0
> HugePages_Surp: 0
> Hugepagesize: 2048 kB
> DirectMap4k: 168600 kB
> DirectMap2M: 8091648 kB
>
> but i only need:
>
> MemTotal: 8051660 kB
> MemAvailable: 6843080 kB
> Cached: 708336 kB
>
> event better would be if kernel would only tell me:
>
> 8051660 6843080 708336
>
> if /proc is the only way to get this info, i wonder if creating a kernel module for this would be more efficient, or even possible?
Hello Andre,
According to what you need, you may want to use the 'free' command
instead, as its output is much simpler than the output of the
/proc/meminfo file
E.g.
>$ free
> total used free shared buff/cache available
>Mem: 5951844 486324 4969788 75812 495732 5339492
>Swap: 0 0 0
or, if you prefer it be displayed in mebibytes,
>$ free -m
> total used free shared buff/cache available
>Mem: 5812 496 4832 73 484 5193
>Swap: 0 0 0
you can also check the man page for more display options
Hope this helps,
Jonathan
More information about the arch-general
mailing list