d691d6e941
Record the bandwidth when writing storaged.proto to monitor system storage performance. The history is maintained in 3 catergories. 1. samples of last 24 hours. 2. daily average of last 7 days. 3. weekly average of last 52 weeks. Sampling frequency of the first catergory is set to once every hour. Storaged also flushes proto at same frequency. The proto file is padded to reach a minimal size of 128KB. Storaged writes 16KB at a time. Bandwidth calculation ignores time spent in the first write and writes smaller than 16KB. bandwidth = total size of 16KB writes / time spent in 16KB writes Restructured the code so that storaged.cpp handles proto load/flush. It calls individual module to sync proto with internal data structures. Added a cmdline argument to dump perf history. adb shell storaged -p I/O perf history (KB/s) : most_recent <--------- least_recent last 24 hours : 5315 3775 3659 2042 3890 5652 3649 3696 6023 last 7 days : 4648 3532 3828 3567 3841 3359 4676 last 52 weeks : 3817 4275 3836 3766 4280 0 0 0 0 0 ... Test: adb shell storaged -p atp:asit/perf/jank_systemui_test atp:asit/perf/appstartup_hermetic_cyclic_dropcache_test atp:asit/perf/appstartup_non_hermetic_cyclic_dropcache_test Bug: 63629306 Change-Id: Ie7051e7a8df883d4a6818ea9a54a10f4dccb4843 |
||
---|---|---|
.. | ||
include | ||
tests | ||
tools | ||
Android.bp | ||
EventLogTags.logtags | ||
main.cpp | ||
README.properties | ||
storaged.cpp | ||
storaged.proto | ||
storaged.rc | ||
storaged_diskstats.cpp | ||
storaged_info.cpp | ||
storaged_service.cpp | ||
storaged_uid_monitor.cpp | ||
storaged_utils.cpp |
ro.storaged.event.interval # interval storaged scans for IO stats, in seconds ro.storaged.event.perf_check # check for time spent in event loop, in microseconds ro.storaged.disk_stats_pub # interval storaged publish disk stats, in seconds ro.storaged.uid_io.interval # interval storaged checks Per UID IO usage, in seconds ro.storaged.uid_io.threshold # Per UID IO usage limit, in bytes