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
meminfoA 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_memusageis 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.