diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-03-22 12:18:31 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2019-04-12 14:25:44 +0200 |
commit | 7a5de3f9518859aaeb8bcf9fdcea488a04cc57ed (patch) | |
tree | d9500659d479891b839ac8f57b9fa54abb937e00 | |
parent | 826f7cb15bee4240bc5833433e3bc3829ca2d4e1 (diff) | |
download | systemd-7a5de3f9518859aaeb8bcf9fdcea488a04cc57ed.tar.gz |
systemctl: show IO stats in 'status' output
-rw-r--r-- | src/systemctl/systemctl.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 92bbcfd276..cfcc4f6874 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -4125,9 +4125,10 @@ typedef struct UnitStatusInfo { uint64_t cpu_usage_nsec; uint64_t tasks_current; uint64_t tasks_max; - uint64_t ip_ingress_bytes; uint64_t ip_egress_bytes; + uint64_t io_read_bytes; + uint64_t io_write_bytes; LIST_HEAD(ExecStatusInfo, exec); } UnitStatusInfo; @@ -4482,6 +4483,14 @@ static void print_status_info( format_bytes(buf_out, sizeof(buf_out), i->ip_egress_bytes)); } + if (i->io_read_bytes != UINT64_MAX && i->io_write_bytes != UINT64_MAX) { + char buf_in[FORMAT_BYTES_MAX], buf_out[FORMAT_BYTES_MAX]; + + printf(" IO: %s read, %s written\n", + format_bytes(buf_in, sizeof(buf_in), i->io_read_bytes), + format_bytes(buf_out, sizeof(buf_out), i->io_write_bytes)); + } + if (i->tasks_current != (uint64_t) -1) { printf(" Tasks: %" PRIu64, i->tasks_current); @@ -5490,6 +5499,8 @@ static int show_one( { "TasksMax", "t", NULL, offsetof(UnitStatusInfo, tasks_max) }, { "IPIngressBytes", "t", NULL, offsetof(UnitStatusInfo, ip_ingress_bytes) }, { "IPEgressBytes", "t", NULL, offsetof(UnitStatusInfo, ip_egress_bytes) }, + { "IOReadBytes", "t", NULL, offsetof(UnitStatusInfo, io_read_bytes) }, + { "IOWriteBytes", "t", NULL, offsetof(UnitStatusInfo, io_write_bytes) }, { "ExecStartPre", "a(sasbttttuii)", map_exec, 0 }, { "ExecStart", "a(sasbttttuii)", map_exec, 0 }, { "ExecStartPost", "a(sasbttttuii)", map_exec, 0 }, @@ -5514,6 +5525,8 @@ static int show_one( .tasks_max = (uint64_t) -1, .ip_ingress_bytes = (uint64_t) -1, .ip_egress_bytes = (uint64_t) -1, + .io_read_bytes = UINT64_MAX, + .io_write_bytes = UINT64_MAX, }; char **pp; int r; |