tools: Add resource-monitor monitoring tool 76/278876/10 accepted/tizen/unified/20220805.131714 submit/tizen/20220805.024015
authorChanwoo Choi <cw00.choi@samsung.com>
Fri, 25 Feb 2022 10:29:06 +0000 (19:29 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Thu, 4 Aug 2022 09:13:01 +0000 (18:13 +0900)
commit3133e717ae041f6caa74b865693fb158e44d0aa0
tree68f621067e3aba57fd31542a44e810f7b8538b31
parentb3308132cbfbc2de1b74c07842bbba18a12c0063
tools: Add resource-monitor monitoring tool

The resource-monitor monitors the available all resource attribute
on device and print them.

- Monitoring sequence as following:
1. Get resource count of each resource type
2. Set resource attributes of each resource
3. Update resource attributes to get value
4. Get value from resources
5. Print value of resources

- Usage
resource-monitor -h | -d secs -n max -p pid -g ppid | --pid pid --ppid ppid

- For example on rpi4 board,
$ resource-monitor --pid 1 --ppid 1
-------------------------------------------------------------------------------------------------------------------------------
  :  |             Resource Attribute Name |                 Resource Attribute Value | Unit  | Resource Attribute Description
-------------------------------------------------------------------------------------------------------------------------------
 0: 0|                SYSTEM_ATTR_CPU_UTIL |                                     4.96 | %     | CPU average utilization
 0: 1|           SYSTEM_ATTR_CPU_USER_UTIL |                                     0.65 | %     | CPU average utilization on user
 0: 2|            SYSTEM_ATTR_CPU_SYS_UTIL |                                     4.31 | %     | CPU average utilization on system
 0: 3|            SYSTEM_ATTR_PER_CPU_UTIL |                    1.72 1.71 13.91 1.72  | %     | Per-CPU utilization
 0: 4|       SYSTEM_ATTR_PER_CPU_USER_UTIL |                     0.00 0.00 1.74 0.00  | %     | Per-CPU utilization on user
 0: 5|        SYSTEM_ATTR_PER_CPU_SYS_UTIL |                    1.72 1.71 12.17 1.72  | %     | Per-CPU utilization on system
 0: 6|            SYSTEM_ATTR_POSSIBLE_CPU |                                        4 | ea    | Number of possible CPU
 0: 7|              SYSTEM_ATTR_ONLINE_CPU |                                        4 | ea    | Number of online CPU

 1: 0|                   MEMORY_ATTR_TOTAL |                               3974103040 | byte  | Memory total size
 1: 1|               MEMORY_ATTR_AVAILABLE |                               3560730624 | byte  | Memory available size
 1: 2|                    MEMORY_ATTR_FREE |                               3405287424 | byte  | Memory free size
 1: 3|                  MEMORY_ATTR_BUFFER |                                 20500480 | byte  | Memorry buffer size
 1: 4|                  MEMORY_ATTR_CACHED |                                220078080 | byte  | Memory cached size
 1: 5|               MEMORY_ATTR_CMA_TOTAL |                                419430400 | byte  | CMA memory total size
 1: 6|                MEMORY_ATTR_CMA_FREE |                                381743104 | byte  | CMA memory free size
 1: 7|              MEMORY_ATTR_SWAP_TOTAL |                               1589637120 | byte  | Swap memory total size
 1: 8|               MEMORY_ATTR_SWAP_FREE |                               1495789568 | byte  | Swap memory free size

 2: 0|                   DISPLAY_ATTR_NAME |                                    hdmi0 |       | Display device name
 2: 1|                    DISPLAY_ATTR_FPS |                                     0.00 | fps   | Frame per second (fps)

 3: 0|                       CPU_ATTR_NAME |                                     cpu0 |       | CPU cluster name
 3: 1|                   CPU_ATTR_CUR_FREQ |                                   600000 | kHz   | Current CPU frequency
 3: 2|                   CPU_ATTR_MIN_FREQ |                                   600000 | kHz   | Current CPU minimum frequency
 3: 3|                   CPU_ATTR_MAX_FREQ |                                  1500000 | kHz   | Current CPU maximum frequency
 3: 4|         CPU_ATTR_AVAILABLE_MIN_FREQ |                                   600000 | kHz   | Available CPU minimum frequency
 3: 5|         CPU_ATTR_AVAILABLE_MAX_FREQ |                                  1500000 | kHz   | Available CPU maximum frequency
 3: 6|               CPU_ATTR_CUR_GOVERNOR |                                schedutil |       | Current CPU frequency governor name

 4: 0|                      DISK_ATTR_NAME |                                    zram0 |       | Disk device name
 4: 1|              DISK_ATTR_READ_PER_SEC |                                     0.00 | kB/s  | Disk read per second
 4: 2|             DISK_ATTR_WRITE_PER_SEC |                                     0.00 | kB/s  | Disk write per second
 4: 3|                DISK_ATTR_READ_TOTAL |                                    46496 | kB    | Disk read total size
 4: 4|               DISK_ATTR_WRITE_TOTAL |                                   230640 | kB    | Disk write total size

 5: 0|                      DISK_ATTR_NAME |                                  mmcblk0 |       | Disk device name
 5: 1|              DISK_ATTR_READ_PER_SEC |                                     0.00 | kB/s  | Disk read per second
 5: 2|             DISK_ATTR_WRITE_PER_SEC |                                     0.00 | kB/s  | Disk write per second
 5: 3|                DISK_ATTR_READ_TOTAL |                                  1041514 | kB    | Disk read total size
 5: 4|               DISK_ATTR_WRITE_TOTAL |                                   388458 | kB    | Disk write total size

 6: 0|                   NETWORK_ATTR_NAME |                                     eth0 |       | Network device name

 7: 0|                   PROCESS_ATTR_NAME |                                  systemd |       | Process name
 7: 1|               PROCESS_ATTR_CPU_UTIL |                                     0.00 | %     | Process CPU utilization
 7: 2|               PROCESS_ATTR_MEM_VIRT |                                 15183377 | byte  | Process VIRT memory size
 7: 3|                PROCESS_ATTR_MEM_RSS |                                  6216822 | byte  | Process RSS(Resident Set Size) memory size
 7: 4|        PROCESS_ATTR_MEM_RSS_PERCENT |                                     0.00 | %     | Process RSS(Resident Set Size) memory percent
 7: 5|          PROCESS_ATTR_DISK_READ_BPS |                                        0 | b/s   | Process disk read per second
 7: 6|         PROCESS_ATTR_DISK_WRITE_BPS |                                        0 | b/s   | Process disk write per second
 7: 7|                   PROCESS_ATTR_PGID |                                        1 |       | Process group ID
 7: 8|                   PROCESS_ATTR_PPID |                                        0 |       | Process parent PID(Process ID)
 7: 9|                PROCESS_ATTR_MEM_PSS |                                  3757056 | byte  | Process PSS(Propotional Set Size) memory size
 7:10|               PROCESS_ATTR_MEM_SWAP |                                   311296 | byte  | Process Swap memory size
 7:11|           PROCESS_ATTR_MEM_SWAP_PSS |                                   186368 | byte  | Process Swap PSS(Propotional Set Size) memory size
 7:12|                PROCESS_ATTR_MEM_GPU |                            Not Supported | byte  | Process GPU memory size

 8: 0|         PROCESS_GROUP_ATTR_PID_LIST |                          Not Implemented |       | Process-group PID(Process ID) list
 8: 1|        PROCESS_GROUP_ATTR_NAME_LIST |                          Not Implemented |       | Process-group name list
 8: 2|         PROCESS_GROUP_ATTR_CPU_UTIL |                                     0.23 | %     | Process-group CPU utilization
 8: 3|    PROCESS_GROUP_ATTR_DISK_READ_BPS |                                        0 | b/s   | Process-group disk read per second
 8: 4|   PROCESS_GROUP_ATTR_DISK_WRITE_BPS |                                    31743 | b/s   | Process-group disk write per second
 8: 5|         PROCESS_GROUP_ATTR_MEM_VIRT |                             140541707212 | byte  | Process-group VIRT memory size
 8: 6|          PROCESS_GROUP_ATTR_MEM_RSS |                               1378679318 | byte  | Process-group RSS(Resident Set Size) memory size
 8: 7|          PROCESS_GROUP_ATTR_MEM_PSS |                                188443648 | byte  | Process-group PSS(Propotional Set Size) memory size
 8: 8|         PROCESS_GROUP_ATTR_MEM_SWAP |                                 93335552 | byte  | Process-group Swap memory size
 8: 9|     PROCESS_GROUP_ATTR_MEM_SWAP_PSS |                                 92164096 | byte  | Process-group Swap PSS(Propotional Set Size) memory size
 8:10|          PROCESS_GROUP_ATTR_MEM_GPU |                            Not Supported | byte  | Process-group GPU memory size

Change-Id: I4e227fe451108b51f0a2371ad7104a54e36bb6a8
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
CMakeLists.txt
packaging/pass.spec
tools/resource-monitor/CMakeLists.txt [new file with mode: 0644]
tools/resource-monitor/resource-monitor.c [new file with mode: 0644]