use stats readaheads
Costa Tsaousis (ktsaou) committed
Mar 5, 2018 at 18:37 UTC
7c5b13fc31e6c57e33e7cd343d3013544afa1ed0
1 file changed
+11
-13
src/proc_diskstats.c
+11
-13
@@ -35,7 +35,6 @@ static struct disk {
35
int device_is_bcache;
36
37
char *bcache_filename_cache_congested;
38
- char *bcache_filename_readahead;
38
char *bcache_filename_dirty_data;
39
char *bcache_filename_writeback_rate;
40
@@ -45,6 +44,7 @@ static struct disk {
44
char *bcache_filename_stats_total_cache_miss_collisions;
45
char *bcache_filename_stats_total_cache_bypass_hits;
46
char *bcache_filename_stats_total_cache_bypass_misses;
47
+ char *bcache_filename_stats_total_cache_readaheads;
48
49
RRDSET *st_io;
50
RRDDIM *rd_io_reads;
@@ -99,7 +99,7 @@ static struct disk {
99
100
RRDSET *st_bcache_rates;
101
RRDDIM *rd_bcache_rate_congested;
102
- RRDDIM *rd_bcache_rate_readahead;
102
+ RRDDIM *rd_bcache_readaheads;
103
RRDDIM *rd_bcache_rate_writeback;
104
105
struct disk *next;
@@ -519,7 +519,7 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis
519
520
snprintfz(buffer2, FILENAME_MAX, "%s/readahead", buffer);
521
if(access(buffer2, R_OK) == 0)
522
- d->bcache_filename_readahead = strdupz(buffer2);
522
+ d->bcache_filename_stats_total_cache_readaheads = strdupz(buffer2);
523
else
524
error("bcache file '%s' cannot be read.", buffer2);
525
@@ -1074,8 +1074,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1074
cache_miss_collisions = 0,
1075
cache_misses = 0,
1076
cache_available_percent = 0,
1077
+ cache_readaheads = 0,
1078
congested = 0,
1078
- readahead = 0,
1079
dirty_data = 0,
1080
writeback_rate = 0;
1081
@@ -1084,8 +1084,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1084
if(d->bcache_filename_cache_congested)
1085
congested = bcache_read_number_with_units(d->bcache_filename_cache_congested);
1086
1087
- if(d->bcache_filename_readahead)
1088
- readahead = bcache_read_number_with_units(d->bcache_filename_readahead);
1087
+ if(d->bcache_filename_stats_total_cache_readaheads)
1088
+ cache_readaheads = bcache_read_number_with_units(d->bcache_filename_stats_total_cache_readaheads);
1089
1090
if(d->bcache_filename_dirty_data)
1091
dirty_data = bcache_read_number_with_units(d->bcache_filename_dirty_data);
@@ -1132,14 +1132,12 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1132
, RRDSET_TYPE_AREA
1133
);
1134
1135
- d->rd_bcache_rate_readahead = rrddim_add(d->st_bcache_rates, "readahead", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
1136
- d->rd_bcache_rate_writeback = rrddim_add(d->st_bcache_rates, "writeback", NULL, -1, 1024, RRD_ALGORITHM_ABSOLUTE);
1135
d->rd_bcache_rate_congested = rrddim_add(d->st_bcache_rates, "congested", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
1136
+ d->rd_bcache_rate_writeback = rrddim_add(d->st_bcache_rates, "writeback", NULL, -1, 1024, RRD_ALGORITHM_ABSOLUTE);
1137
}
1138
else rrdset_next(d->st_bcache_rates);
1139
1140
rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_writeback, writeback_rate);
1142
- rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_readahead, readahead);
1141
rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_congested, congested);
1142
rrdset_done(d->st_bcache_rates);
1143
}
@@ -1196,8 +1194,6 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1194
1195
if(d->do_bcache == CONFIG_BOOLEAN_YES || (d->do_bcache == CONFIG_BOOLEAN_AUTO && (cache_hits != 0 || cache_misses != 0 || cache_miss_collisions != 0))) {
1196
1199
- cache_misses -= cache_miss_collisions;
1200
-
1197
if(unlikely(!d->st_bcache)) {
1198
d->st_bcache = rrdset_create_localhost(
1199
"disk_bcache"
@@ -1218,13 +1214,15 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1214
1215
d->rd_bcache_hits = rrddim_add(d->st_bcache, "hits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
1216
d->rd_bcache_misses = rrddim_add(d->st_bcache, "misses", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
1221
- d->rd_bcache_miss_collisions = rrddim_add(d->st_bcache, "collisions", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
1217
+ d->rd_bcache_readaheads = rrddim_add(d->st_bcache, "readaheads", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
1218
+ d->rd_bcache_miss_collisions = rrddim_add(d->st_bcache, "collisions", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
1219
}
1220
else rrdset_next(d->st_bcache);
1221
1222
rrddim_set_by_pointer(d->st_bcache, d->rd_bcache_hits, cache_hits);
1223
rrddim_set_by_pointer(d->st_bcache, d->rd_bcache_misses, cache_misses);
1224
rrddim_set_by_pointer(d->st_bcache, d->rd_bcache_miss_collisions, cache_miss_collisions);
1225
+ rrddim_set_by_pointer(d->st_bcache, d->rd_bcache_readaheads, cache_readaheads);
1226
rrdset_done(d->st_bcache);
1227
}
1228
@@ -1328,7 +1326,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1326
}
1327
1328
freez(t->bcache_filename_cache_congested);
1331
- freez(t->bcache_filename_readahead);
1329
+ freez(t->bcache_filename_stats_total_cache_readaheads);
1330
freez(t->bcache_filename_dirty_data);
1331
freez(t->bcache_filename_writeback_rate);
1332
freez(t->bcache_filename_stats_total_cache_available_percent);