Recently I have been on a 'quest' to find what would work properly to
display
server memory usages, and the likes. I have explored every possiblity
from
mstats, to now, the procs directory.
I have yet to test this, but I would ask if this seems fezable to do and
work correctly.
FILE *StatusFile;
struct stat s;
/* Misc values for free memory, used memory, size of kcore, etc */
/* Getting the size of kcore should give us the total amount of RAM
installed on
our server */
if (stat("/proc/kcore", &s) < 0) {
log("Cannot Stat /proc/kcore");
send_to_char("kcore unabled to be opened or not present.\r\n", ch);
return;
}
sysmem = s.st_size;
/* check meminfo for total used stuff on server, etc. if you like
if ((meminfo = fopen("/proc/meminfo", "r")) == NULL) {
log("/proc/meminfo seems to be not present or unreadable.");
send_to_char("meminfo unable to be opened or not present,
continuing.\r\n", ch);
}else {
/* scan thru /proc/meminfo here, getting such things as shared memory,
buffers, cached,
swap info, (total and free) */
}
/* get our specific processes information */
sprintf(filename, "/proc/%d/status", pid_of_mud);
if ((StatusFile = fopen(filename, "r")) == NULL ) {
log("%s cannot be found or read.", filename);
send_to_char("Unabled to get memory information on MUD.\r\n");
return;
}
/* make parser that scans status file, and reports only information that
is valueable, like
VmRSS, VmSize, VmData, VmStk, VmExe, Proc Name, Current State, PPid
(if present),
Uid/Gid information */
Tym
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST