Yinan Zhang
733ae918f0
Extract out per event new wait time fetching
2020-05-12 09:16:16 -07:00
Yinan Zhang
f533ab6da6
Add forking handling for stats
2020-05-11 15:35:06 -07:00
Yinan Zhang
2097e1945b
Unify write callback signature
2020-05-11 14:51:24 -07:00
Qi Wang
88b0e03a4e
Implement opt.stats_interval and the _opts options.
...
Add options stats_interval and stats_interval_opts to allow interval based stats
printing. This provides an easy way to collect stats without code changes,
because opt.stats_print may not work (some binaries never exit).
2020-01-29 09:57:55 -08:00
David T. Goldblatt
de81a4eada
Add stats counters for number of zero reallocs
2019-10-29 17:48:44 -07:00
David T. Goldblatt
9cfa805947
Realloc: Make behavior of realloc(ptr, 0) configurable.
2019-10-29 17:48:44 -07:00
Yinan Zhang
4786099a3a
Increase column width for global malloc/free rate
2019-10-24 14:54:51 -07:00
Yinan Zhang
4fe50bc7d0
Fix amd64 MSVC warning
2019-10-18 10:16:29 -07:00
Yinan Zhang
eb70fef8ca
Make compact json format as default
...
Saves 20-50% of the output size.
2019-08-12 13:59:50 -07:00
Qi Wang
4e36ce34c1
Track the leaked VM space via the abandoned_vm counter.
...
The counter is 0 unless metadata allocation failed (indicates OOM), and is
mainly for sanity checking.
2019-07-24 11:24:22 -07:00
Yinan Zhang
c92ac30601
Add confirm_conf option
...
If the confirm_conf option is set, when the program starts, each of
the four malloc_conf strings will be printed, and each option will
be printed when being set.
2019-05-22 09:38:39 -07:00
Qi Wang
07c44847c2
Track nfills and nflushes for arenas.i.small / large.
...
Small is added purely for convenience. Large flushes wasn't tracked before and
can be useful in analysis. Large fill simply reports nmalloc, since there is no
batch fill for large currently.
2019-05-15 10:05:09 -07:00
Doron Roberts-Kedes
7fc4f2a32c
Add nonfull_slabs to bin_stats_t.
...
When config_stats is enabled track the size of bin->slabs_nonfull in
the new nonfull_slabs counter in bin_stats_t. This metric should be
useful for establishing an upper ceiling on the savings possible by
meshing.
2019-04-29 13:35:02 -07:00
David Goldblatt
f95a88fcd9
Safety checks: Expose config value via mallctl and stats.
2019-04-15 16:48:12 -07:00
Qi Wang
b33eb26dee
Tweak the spacing for the total_wait_time per second.
2019-01-28 15:37:19 -08:00
Qi Wang
e3db480f6f
Rename huge_threshold to oversize_threshold.
...
The keyword huge tend to remind people of huge pages which is not relevent to
the feature.
2019-01-25 13:15:45 -08:00
Qi Wang
522d1e7b4b
Tweak the spacing for nrequests in stats output.
2019-01-23 17:42:12 -08:00
Qi Wang
8c9571376e
Fix stats output (rate for total # of requests).
...
The rate calculation for the total row was missing.
2019-01-23 17:42:12 -08:00
Qi Wang
7a815c1b7c
Un-experimental the huge_threshold feature.
2019-01-16 12:28:57 -08:00
Alexander Zinoviev
36de5189c7
Add rate counters to stats
2018-12-18 09:59:41 -08:00
Qi Wang
45bb4483ba
Add stats for arenas.bin.i.nshards.
2018-12-03 17:17:03 -08:00
Tyler Etzel
126252a7e6
Add stats for the size of extent_avail heap
2018-08-02 10:16:06 -07:00
Tyler Etzel
c14e6c0819
Add extents information to mallocstats output
...
- Show number/bytes of extents of each size that are dirty, muzzy, retained.
2018-08-02 10:16:06 -07:00
Tyler Etzel
eb261e53a6
Small refactoring of emitter
...
- Make API more clear for using as standalone json emitter
- Support cases that weren't possible before, e.g.
- emitting primitive values in an array
- emitting nested arrays
2018-08-01 13:27:11 -07:00
Qi Wang
cdf15b458a
Rename huge_threshold to experimental, and tweak documentation.
2018-06-29 10:35:02 -07:00
Qi Wang
1302af4c43
Add ctl and stats for opt.huge_threshold.
2018-06-29 10:35:02 -07:00
Qi Wang
9bd8deb260
Fix stats output for opt.lg_extent_max_active_fit.
2018-06-05 10:23:28 -07:00
Qi Wang
09edea3f5c
Tweak the format of the per arena summary section.
...
Increase the width to ensure enough space for long running programs.
2018-05-17 12:58:56 -07:00
Qi Wang
956c4ad6b5
Change mutable option output in stats to avoid stringify issues.
2018-03-15 14:42:48 -07:00
Qi Wang
baffeb1d0a
Fix a typo in stats.
2018-03-15 14:42:48 -07:00
David Goldblatt
4c36cd2cc5
Stats printing: Convert arena large stats to use emitter.
...
This completes the conversion; we now have only structured text output.
2018-03-09 11:47:17 -08:00
David Goldblatt
4eed989bbf
Stats printing: convert arena bin stats to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
a9f3cedc6e
Stats printing: remove a spurious newline.
...
This was left over from a previous emitter conversion. It didn't affect the
correctness of the output.
2018-03-09 11:47:17 -08:00
David Goldblatt
a1738f4efd
Stats printing: Make arena mutex stats use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
07fb707623
Stats printing: convert most per-arena stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
8fc850695d
Stats printing: convert paging and alloc counts to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
bc6620f73e
Stats printing: convert decay stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
a6ef061c43
Stats printing: Move emitter cutoff point into stats_arena_print.
2018-03-09 11:47:17 -08:00
David Goldblatt
cbde666d9a
Stats printing: move stats_print_helper to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
86c61d4a57
Stats printing: Move global mutex stats to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
9e1846b004
Stats printing: move non-mutex arena stats to the emitter.
...
Another step in the conversion process. The mutex is a little different,
because we we want to emit it as an array.
2018-03-09 11:47:17 -08:00
David Goldblatt
8076b28721
Stats printing: Remove explicit callback passing to stats_print_helper.
...
This makes the emitter the only source of callback information, which is a step
towards where we want to be.
2018-03-09 11:47:17 -08:00
David Goldblatt
0d20eda127
Stats printing: Move emitter -> manual cutoff point.
...
This makes it so that the "general" portion of the stats code is completely
agnostic to emitter type.
2018-03-09 11:47:17 -08:00
David Goldblatt
ec31d476ff
Stats printing: Convert profiling stats to use the emitter.
...
While we're at it, print them in table form, too.
2018-03-09 11:47:17 -08:00
David Goldblatt
e5acc35400
Stats printing: Convert general arena stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
4a335e0c6f
Stats printing: convert config and opt output to use emitter.
...
This is a step along the path towards using the emitter for all stats output.
2018-03-09 11:47:17 -08:00
David Goldblatt
b646f89173
Stats printing: Convert header and footer to use emitter.
2018-03-09 11:47:17 -08:00
Qi Wang
e4f090e8df
Add opt.thp which allows explicit hugepage usage.
...
"always" marks all user mappings as MADV_HUGEPAGE; while "never" marks all
mappings as MADV_NOHUGEPAGE. The default setting "default" does not change any
settings. Note that all the madvise calls are part of the default extent hooks
by design, so that customized extent hooks have complete control over the
mappings including hugepage settings.
2018-03-08 13:08:06 -08:00
Qi Wang
efa40532dc
Remove config.thp which wasn't in use.
2018-03-08 13:08:06 -08:00
Rajeev Misra
f47e39d11a
handle 32 bit mutex counters
2018-01-04 11:08:17 -08:00