beostat_get_meminfo – get information about the memory usage on a node


#include <sys/beostat.h>
int beostat_get_meminfo (int node, struct beostat_meminfo *meminfo);



The node to query


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;


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.


meminfo_t meminfo;
beostat_get_meminfo (3, &meminfo);
printf ("The node 3 has %s bytes free\n",;

Return Value

Return 0 on success. If an error occurs, it will return -1.


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.