Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sg_get_disk_io_stats(3) [debian man page]

sg_get_disk_io_stats(3) 				     Library Functions Manual					   sg_get_disk_io_stats(3)

NAME
sg_get_disk_io_stats, sg_get_disk_io_stats_diff - get disk io statistics SYNOPSIS
#include <statgrab.h> sg_disk_io_stats *sg_get_disk_io_stats(int *entries); sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries); DESCRIPTION
Both calls take a pointer to an int, entries, which is filled with the number of disks the machine has. This is needed to know how many sg_disk_io_stats structures have been returned. A pointer is returned to the first sg_disk_io_stats. sg_get_disk_io_stats returns the disk IO stored in the kernel which holds the amount of data transferred since bootup. On some platforms, such as Solaris 7, this value is stored in a 32bit int, so wraps around when it reaches 4GB. Other platforms, such as Solaris 8, hold the value in a 64bit int, which wraps somewhere near 17 million terabytes. sg_get_disk_io_stats_diff is the same as sg_get_disk_io_stats except it will return the difference since the last call. So, for instance a call to sg_get_disk_io_stats_diff is made, and called again 5 seconds later. Over that time, 2000 bytes of traffic were written and 10000 bytes read. write_bytes will store 2000 bytes, read_bytes will store 10000, and systime will store 5. This function copes with wrap arounds by the O/S so should be seemless to use. On Solaris libstatgrab will attempt to get the cXtXdXsX representation for the disk_name string. If it fails it will use a name like sd0. On some systems programs calling libstatgrab will need elevated privileges to lookup some of the names. The mappings are built up when sg_init is called. RETURN VALUES
All diskio statistics return a pointer to a structure of type sg_disk_io_stats. typedef struct{ char *disk_name; long long read_bytes; long long write_bytes; time_t systime; }sg_disk_io_stats; disk_name The name known to the operating system. (eg. on linux it might be hda) read_bytes The number of bytes the disk has read. write_bytes The number of bytes the disk has written. systime The time period over which read_bytes and write_bytes were transferred. BUGS
On the very first call sg_get_disk_io_stats_diff will return the same as sg_get_disk_io_stats. After the first call it will always return the difference. On operating systems that hold only 32bits of data there is a problem if the values wrap twice. For example, on Solaris 7 if 9GB is trans- ferred and the operating system wraps at 4GB, the sg_get_disk_io_stats_diff function will return 5GB. SEE ALSO
statgrab(3) WEBSITE
http://www.i-scream.org/libstatgrab/ i-scream $Date: 2005/04/25 11:25:45 $ sg_get_disk_io_stats(3)

Check Out this Related Man Page

statgrab(3)						     Library Functions Manual						       statgrab(3)

NAME
statgrab - get system statistics SYNOPSIS
#include <statgrab.h> int sg_init(void); int sg_drop_privileges(void); sg_error sg_get_error(void); const char *sg_get_error_arg(void); intsg_get_error_errno(void); const char *sg_str_error(sg_error code); sg_cpu_stats *sg_get_cpu_stats(void); sg_cpu_stats *sg_get_cpu_stats_diff(void); sg_cpu_percents *sg_get_cpu_percents(void); sg_disk_io_stats *sg_get_disk_io_stats(int *entries); sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries); sg_fs_stats *sg_get_fs_stats(void); sg_host_info *sg_get_host_info(void); sg_load_stats *sg_get_load_stats(void); sg_mem_stats *sg_get_mem_stats(void); sg_swap_stats *sg_get_swap_stats(void); sg_network_io_stats *sg_get_network_io_stats(int *entries); sg_network_io_stats *sg_get_network_io_stats_diff(int *entries); sg_network_iface_stats *sg_get_network_iface_stats(int *entries); sg_page_stats *sg_get_page_stats(void); sg_page_stats *sg_get_page_stats_diff(void); sg_process_count *sg_get_process_stats(void); sg_user_stats *sg_get_user_stats(void); DESCRIPTION
The statgrab library provides a cross-platform interface to getting system statistics. Each of the function calls returns a structure con- taining statistics. See the manual page for each individual function for more details on usage. sg_init must be the first function you call before you start to use libstatgrab; it performs all the one-time initialisation operations that need setuid/setgid privileges. For instance, on *BSD it opens a descriptor to be able to read kernel structures later on, and on Solaris it reads the device mappings that in some cases are only accessible by root (machines with a /dev/osa). Once this has run, the other libstatgrab functions no longer need elevated privileges. It is therefore a good idea to call sg_drop_privileges, which discards setuid and setgid privileges, immediately after you call sg_init, unless your application has another reason for needing setuid or setgid privileges. sg_init and sg_drop_privileges return 0 on success, and non-zero on failure. There are three functions relating to error reporting in libstatgrab. The first, sg_get_error returns an sg_error code which relates to the last error generated by libstatgrab. This can be converted to a string by calling sg_str_error giving the sg_error code as an argument. An optional argument may be set when the error was generated. This can be accessed by calling sg_get_error_arg; NULL will be returned if no argument has been set. Some errors will also record the value of the system errno variable when the error occurred; this can be retrieved by calling sg_get_error_errno, which will return 0 if no valid errno has been recorded. It is the intended practice that whenever a libstatgrab function is called and subsequently fails that an appropriate error will be set. The library was originally written to support the i-scream central monitoring system, but has since become a standalone package. It has been ported to work on Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, Solaris, HP-UX and Cygwin. SEE ALSO
sg_get_cpu_percents(3) sg_get_disk_io_stats(3) sg_get_fs_stats(3) sg_get_host_info(3) sg_get_load_stats(3) sg_get_mem_stats(3) sg_get_net- work_io_stats(3) sg_get_network_iface_stats(3) sg_get_page_stats(3) sg_get_process_stats(3) sg_get_user_stats(3) WEBSITE
http://www.i-scream.org/libstatgrab/ i-scream $Date: 2005/04/25 11:25:45 $ statgrab(3)
Man Page