beostat_get_meminfo¶
Name¶
beostat_get_meminfo – get information about the memory usage on a node
Synopsis¶
#include <sys/beostat.h>
int beostat_get_meminfo (int node, struct beostat_meminfo *meminfo);
Arguments¶
node
The node to query
meminfo
A pointer to a
struct beostat_meminfo
, which is defined as follows:struct beostat_meminfo { struct beostat_memusage mem; struct beostat_memusage swap; unsigned long long shared; unsigned long long buffers; unsigned long long cached; };
where
struct beostat_memusage
is defined as follows:struct beostat_memusage { unsigned long long used; unsigned long long free; };
Description¶
beostat_get_meminfo
executes on the master node and returns the
memory usage of a node in the cluster. All values are in bytes.
Warning: Since Linux aggressively caches the hard disk into memory it
will often appear to always be about 90% used. Some have suggested that
the values of buffers
and cached
added together should be
subtracted from the reported memory usage. However, these values may not
be mutually exclusive.
Examples¶
meminfo_t meminfo;
beostat_get_meminfo (3, &meminfo);
printf ("The node 3 has %s bytes free\n", meminfo.mem.free);
Return Value¶
Return 0 on success. If an error occurs, it will return -1.
Errors¶
This function relies on the Beostat
subsystem, which consists of the
proc
filesystem on the remote node, the sendstats
daemon on the
remote node, the recvstats
daemon on the master node, and two shared
memory files in the directory /var/shm
. If any part of the system
breaks down, this function could fail.