正在显示
1 个修改的文件
包含
20 行增加
和
32 行删除
| @@ -393,18 +393,15 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r) | @@ -393,18 +393,15 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r) | ||
| 393 | r.ok = false; | 393 | r.ok = false; |
| 394 | r.sample_time = srs_get_system_time_ms(); | 394 | r.sample_time = srs_get_system_time_ms(); |
| 395 | 395 | ||
| 396 | - for (;;) { | ||
| 397 | - static char label[64]; | ||
| 398 | - static unsigned long value; | ||
| 399 | - int ret = fscanf(f, "%64s %lu\n", label, &value); | ||
| 400 | - | ||
| 401 | - if (ret == EOF) { | ||
| 402 | - break; | ||
| 403 | - } | ||
| 404 | - | ||
| 405 | - if (strcmp("pgpgin", label) == 0) { | 396 | + static char buf[1024]; |
| 397 | + while (fgets(buf, sizeof(buf), f)) { | ||
| 398 | + unsigned long value = 0; | ||
| 399 | + int ret = sscanf(buf, "%*s %lu\n", &value); | ||
| 400 | + srs_assert(ret == 1); | ||
| 401 | + | ||
| 402 | + if (strncmp(buf, "pgpgin ", 7) == 0) { | ||
| 406 | r.pgpgin = value; | 403 | r.pgpgin = value; |
| 407 | - } else if (strcmp("pgpgout", label) == 0) { | 404 | + } else if (strncmp(buf, "pgpgout ", 8) == 0) { |
| 408 | r.pgpgout = value; | 405 | r.pgpgout = value; |
| 409 | } | 406 | } |
| 410 | } | 407 | } |
| @@ -418,8 +415,6 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r) | @@ -418,8 +415,6 @@ bool srs_get_disk_vmstat_stat(SrsDiskStat& r) | ||
| 418 | 415 | ||
| 419 | bool srs_get_disk_diskstats_stat(SrsDiskStat& r) | 416 | bool srs_get_disk_diskstats_stat(SrsDiskStat& r) |
| 420 | { | 417 | { |
| 421 | - // %4d %4d %31s %u | ||
| 422 | - // | ||
| 423 | FILE* f = fopen("/proc/diskstats", "r"); | 418 | FILE* f = fopen("/proc/diskstats", "r"); |
| 424 | if (f == NULL) { | 419 | if (f == NULL) { |
| 425 | srs_warn("open vmstat failed, ignore"); | 420 | srs_warn("open vmstat failed, ignore"); |
| @@ -430,7 +425,6 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r) | @@ -430,7 +425,6 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r) | ||
| 430 | r.sample_time = srs_get_system_time_ms(); | 425 | r.sample_time = srs_get_system_time_ms(); |
| 431 | 426 | ||
| 432 | static char buf[1024]; | 427 | static char buf[1024]; |
| 433 | - | ||
| 434 | while (fgets(buf, sizeof(buf), f)) { | 428 | while (fgets(buf, sizeof(buf), f)) { |
| 435 | unsigned int major = 0; | 429 | unsigned int major = 0; |
| 436 | unsigned int minor = 0; | 430 | unsigned int minor = 0; |
| @@ -452,11 +446,9 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r) | @@ -452,11 +446,9 @@ bool srs_get_disk_diskstats_stat(SrsDiskStat& r) | ||
| 452 | &major, &minor, name, &rd_ios, &rd_merges, | 446 | &major, &minor, name, &rd_ios, &rd_merges, |
| 453 | &rd_sectors, &rd_ticks, &wr_ios, &wr_merges, | 447 | &rd_sectors, &rd_ticks, &wr_ios, &wr_merges, |
| 454 | &wr_sectors, &wr_ticks, &nb_current, &ticks, &aveq); | 448 | &wr_sectors, &wr_ticks, &nb_current, &ticks, &aveq); |
| 449 | + srs_assert(ret == 14); | ||
| 455 | 450 | ||
| 456 | - if (ret == EOF) { | ||
| 457 | - break; | ||
| 458 | - } | ||
| 459 | - | 451 | + // TODO: FIMXE: config it. |
| 460 | if (strcmp("sda", name) == 0) { | 452 | if (strcmp("sda", name) == 0) { |
| 461 | r.rd_ios += rd_ios; | 453 | r.rd_ios += rd_ios; |
| 462 | r.rd_merges += rd_merges; | 454 | r.rd_merges += rd_merges; |
| @@ -541,27 +533,23 @@ void srs_update_meminfo() | @@ -541,27 +533,23 @@ void srs_update_meminfo() | ||
| 541 | SrsMemInfo& r = _srs_system_meminfo; | 533 | SrsMemInfo& r = _srs_system_meminfo; |
| 542 | r.ok = false; | 534 | r.ok = false; |
| 543 | 535 | ||
| 544 | - for (;;) { | ||
| 545 | - static char label[64]; | 536 | + static char buf[1024]; |
| 537 | + while (fgets(buf, sizeof(buf), f)) { | ||
| 546 | static unsigned long value; | 538 | static unsigned long value; |
| 547 | - static char postfix[64]; | ||
| 548 | - int ret = fscanf(f, "%64s %lu %64s\n", label, &value, postfix); | ||
| 549 | - | ||
| 550 | - if (ret == EOF) { | ||
| 551 | - break; | ||
| 552 | - } | 539 | + int ret = sscanf(buf, "%*s %lu", &value); |
| 540 | + srs_assert(ret == 1); | ||
| 553 | 541 | ||
| 554 | - if (strcmp("MemTotal:", label) == 0) { | 542 | + if (strncmp(buf, "MemTotal:", 9) == 0) { |
| 555 | r.MemTotal = value; | 543 | r.MemTotal = value; |
| 556 | - } else if (strcmp("MemFree:", label) == 0) { | 544 | + } else if (strncmp(buf, "MemFree:", 8) == 0) { |
| 557 | r.MemFree = value; | 545 | r.MemFree = value; |
| 558 | - } else if (strcmp("Buffers:", label) == 0) { | 546 | + } else if (strncmp(buf, "Buffers:", 8) == 0) { |
| 559 | r.Buffers = value; | 547 | r.Buffers = value; |
| 560 | - } else if (strcmp("Cached:", label) == 0) { | 548 | + } else if (strncmp(buf, "Cached:", 7) == 0) { |
| 561 | r.Cached = value; | 549 | r.Cached = value; |
| 562 | - } else if (strcmp("SwapTotal:", label) == 0) { | 550 | + } else if (strncmp(buf, "SwapTotal:", 10) == 0) { |
| 563 | r.SwapTotal = value; | 551 | r.SwapTotal = value; |
| 564 | - } else if (strcmp("SwapFree:", label) == 0) { | 552 | + } else if (strncmp(buf, "SwapFree:", 9) == 0) { |
| 565 | r.SwapFree = value; | 553 | r.SwapFree = value; |
| 566 | } | 554 | } |
| 567 | } | 555 | } |
-
请 注册 或 登录 后发表评论