mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
refine system stat, use fgets and sscanf.
This commit is contained in:
parent
a7a009212b
commit
7c1dd97513
1 changed files with 20 additions and 32 deletions
|
@ -393,18 +393,15 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r)
|
||||||
r.ok = false;
|
r.ok = false;
|
||||||
r.sample_time = srs_get_system_time_ms();
|
r.sample_time = srs_get_system_time_ms();
|
||||||
|
|
||||||
for (;;) {
|
static char buf[1024];
|
||||||
static char label[64];
|
while (fgets(buf, sizeof(buf), f)) {
|
||||||
static unsigned long value;
|
unsigned long value = 0;
|
||||||
int ret = fscanf(f, "%64s %lu\n", label, &value);
|
int ret = sscanf(buf, "%*s %lu\n", &value);
|
||||||
|
srs_assert(ret == 1);
|
||||||
if (ret == EOF) {
|
|
||||||
break;
|
if (strncmp(buf, "pgpgin ", 7) == 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp("pgpgin", label) == 0) {
|
|
||||||
r.pgpgin = value;
|
r.pgpgin = value;
|
||||||
} else if (strcmp("pgpgout", label) == 0) {
|
} else if (strncmp(buf, "pgpgout ", 8) == 0) {
|
||||||
r.pgpgout = value;
|
r.pgpgout = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -418,8 +415,6 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r)
|
||||||
|
|
||||||
bool srs_get_disk_diskstats_stat(SrsDiskStat& r)
|
bool srs_get_disk_diskstats_stat(SrsDiskStat& r)
|
||||||
{
|
{
|
||||||
// %4d %4d %31s %u
|
|
||||||
//
|
|
||||||
FILE* f = fopen("/proc/diskstats", "r");
|
FILE* f = fopen("/proc/diskstats", "r");
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
srs_warn("open vmstat failed, ignore");
|
srs_warn("open vmstat failed, ignore");
|
||||||
|
@ -430,7 +425,6 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r)
|
||||||
r.sample_time = srs_get_system_time_ms();
|
r.sample_time = srs_get_system_time_ms();
|
||||||
|
|
||||||
static char buf[1024];
|
static char buf[1024];
|
||||||
|
|
||||||
while (fgets(buf, sizeof(buf), f)) {
|
while (fgets(buf, sizeof(buf), f)) {
|
||||||
unsigned int major = 0;
|
unsigned int major = 0;
|
||||||
unsigned int minor = 0;
|
unsigned int minor = 0;
|
||||||
|
@ -452,11 +446,9 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r)
|
||||||
&major, &minor, name, &rd_ios, &rd_merges,
|
&major, &minor, name, &rd_ios, &rd_merges,
|
||||||
&rd_sectors, &rd_ticks, &wr_ios, &wr_merges,
|
&rd_sectors, &rd_ticks, &wr_ios, &wr_merges,
|
||||||
&wr_sectors, &wr_ticks, &nb_current, &ticks, &aveq);
|
&wr_sectors, &wr_ticks, &nb_current, &ticks, &aveq);
|
||||||
|
srs_assert(ret == 14);
|
||||||
|
|
||||||
if (ret == EOF) {
|
// TODO: FIMXE: config it.
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp("sda", name) == 0) {
|
if (strcmp("sda", name) == 0) {
|
||||||
r.rd_ios += rd_ios;
|
r.rd_ios += rd_ios;
|
||||||
r.rd_merges += rd_merges;
|
r.rd_merges += rd_merges;
|
||||||
|
@ -541,27 +533,23 @@ void srs_update_meminfo()
|
||||||
SrsMemInfo& r = _srs_system_meminfo;
|
SrsMemInfo& r = _srs_system_meminfo;
|
||||||
r.ok = false;
|
r.ok = false;
|
||||||
|
|
||||||
for (;;) {
|
static char buf[1024];
|
||||||
static char label[64];
|
while (fgets(buf, sizeof(buf), f)) {
|
||||||
static unsigned long value;
|
static unsigned long value;
|
||||||
static char postfix[64];
|
int ret = sscanf(buf, "%*s %lu", &value);
|
||||||
int ret = fscanf(f, "%64s %lu %64s\n", label, &value, postfix);
|
srs_assert(ret == 1);
|
||||||
|
|
||||||
if (ret == EOF) {
|
if (strncmp(buf, "MemTotal:", 9) == 0) {
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp("MemTotal:", label) == 0) {
|
|
||||||
r.MemTotal = value;
|
r.MemTotal = value;
|
||||||
} else if (strcmp("MemFree:", label) == 0) {
|
} else if (strncmp(buf, "MemFree:", 8) == 0) {
|
||||||
r.MemFree = value;
|
r.MemFree = value;
|
||||||
} else if (strcmp("Buffers:", label) == 0) {
|
} else if (strncmp(buf, "Buffers:", 8) == 0) {
|
||||||
r.Buffers = value;
|
r.Buffers = value;
|
||||||
} else if (strcmp("Cached:", label) == 0) {
|
} else if (strncmp(buf, "Cached:", 7) == 0) {
|
||||||
r.Cached = value;
|
r.Cached = value;
|
||||||
} else if (strcmp("SwapTotal:", label) == 0) {
|
} else if (strncmp(buf, "SwapTotal:", 10) == 0) {
|
||||||
r.SwapTotal = value;
|
r.SwapTotal = value;
|
||||||
} else if (strcmp("SwapFree:", label) == 0) {
|
} else if (strncmp(buf, "SwapFree:", 9) == 0) {
|
||||||
r.SwapFree = value;
|
r.SwapFree = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue