Hi,


In of of the recent weekly TC meetings we have discussed usage of our CI resources by projects. After that discussion I did small script [1] to get some more data about it.

I checked separately how much nodes and "nodehours" are projects using in the check and gate queue to validate patches. Full results for the time rage 01.01.2025 to 13.02.2025 are in [2] for the check queue and in [3] for the gate queue.


1 "nodehour" means that 1 CI node was busy for 1 hour running job.


This email is of course not sent just to tell team to cut their testing coverage but if you can take a closer look at your project's CI jobs configuration, maybe there is some  way to improve it easily. For example if you have jobs running as non-voting for long time, maybe you can think of moving them to the experimental or periodic queue instead of running it in the check queue for every patch (or make it voting). This may be one of those small steps to optimize things a bit and make our own live easier as less load on infra means more stable jobs in general.


Below there are results of the top 50 projects based on the "nodehours" per patch


# Check queue

+--------------------------------------------------+-------------------+------------------+----------------------------+-----------------------+---------------------------------+

|                     Project                      | Number of patches | Total Nodes used | Total time used [nodehour] | Nodes per patch (avg) | Time per patch (avg) [nodehour] |

+--------------------------------------------------+-------------------+------------------+----------------------------+-----------------------+---------------------------------+

|   openstack/openstack-ansible-rabbitmq_server    |         2         |        72        |          90:06:07          |         36.00         |             45:03:03            |

|         openstack/octavia-tempest-plugin         |         4         |       128        |         164:35:45          |         32.00         |             41:08:56            |

|    openstack/openstack-ansible-haproxy_server    |         3         |        90        |         119:12:36          |         30.00         |             39:44:12            |

|                 openstack/tacker                 |         14        |       1667       |         506:49:12          |         119.07        |             36:12:05            |

|      openstack/openstack-ansible-os_neutron      |         8         |       204        |         289:32:21          |         25.50         |             36:11:32            |

|     openstack/openstack-ansible-os_keystone      |         3         |        81        |         106:46:15          |         27.00         |             35:35:25            |

|             openstack/kolla-ansible              |        130        |       8461       |         4491:25:21         |         65.08         |             34:32:57            |

|      openstack/openstack-ansible-os_octavia      |         4         |        80        |         135:50:31          |         20.00         |             33:57:37            |

|           openstack/openstack-ansible            |         31        |       872        |         1012:42:34         |         28.13         |             32:40:04            |

|      openstack/openstack-ansible-os_horizon      |         5         |       115        |         162:39:57          |         23.00         |             32:31:59            |

|       openstack/openstack-ansible-os_aodh        |         3         |        66        |          94:01:09          |         22.00         |             31:20:23            |

|      openstack/openstack-ansible-os_glance       |         3         |        69        |          92:57:56          |         23.00         |             30:59:18            |

|      openstack/openstack-ansible-os_cinder       |         3         |        63        |          86:19:38          |         21.00         |             28:46:32            |

|      openstack/openstack-ansible-os_magnum       |         3         |        63        |          84:34:05          |         21.00         |             28:11:21            |

|    openstack/openstack-ansible-os_cloudkitty     |         3         |        48        |          78:30:50          |         16.00         |             26:10:16            |

|      openstack/openstack-ansible-os_ironic       |         6         |        93        |         153:06:27          |         15.50         |             25:31:04            |

|     openstack/openstack-ansible-os_barbican      |         3         |        54        |          76:32:05          |         18.00         |             25:30:41            |

|      openstack/openstack-ansible-os_gnocchi      |         2         |        32        |          51:00:15          |         16.00         |             25:30:07            |

|    openstack/openstack-ansible-os_ceilometer     |         3         |        48        |          75:49:07          |         16.00         |             25:16:22            |

|       openstack/openstack-ansible-os_swift       |         3         |        54        |          75:37:56          |         18.00         |             25:12:38            |

|      openstack/openstack-ansible-os_skyline      |         5         |        89        |         124:53:18          |         17.80         |             24:58:39            |

|     openstack/openstack-ansible-os_placement     |         2         |        36        |          49:46:31          |         18.00         |             24:53:15            |

|                openstack/tempest                 |         26        |       854        |         633:21:36          |         32.85         |             24:21:36            |

|     openstack/openstack-ansible-os_designate     |         3         |        51        |          72:30:14          |         17.00         |             24:10:04            |

|      openstack/openstack-ansible-os_tempest      |         2         |        36        |          47:27:46          |         18.00         |             23:43:53            |

|      openstack/openstack-ansible-os_mistral      |         3         |        51        |          71:06:02          |         17.00         |             23:42:00            |

|       openstack/openstack-ansible-os_heat        |         3         |        51        |          70:23:53          |         17.00         |             23:27:57            |

|      openstack/openstack-ansible-os_blazar       |         2         |        32        |          46:30:44          |         16.00         |             23:15:22            |

|     openstack/openstack-ansible-os_masakari      |         3         |        48        |          68:52:54          |         16.00         |             22:57:38            |

|     openstack/ansible-role-systemd_networkd      |         13        |       277        |         297:37:09          |         21.31         |             22:53:37            |

|         openstack/ironic-tempest-plugin          |         12        |       398        |         271:54:14          |         33.17         |             22:39:31            |

|    openstack/openstack-ansible-galera_server     |         5         |       111        |         112:28:29          |         22.20         |             22:29:41            |

|       openstack/openstack-ansible-os_nova        |         3         |        51        |          66:54:40          |         17.00         |             22:18:13            |

|       openstack/openstack-ansible-os_rally       |         2         |        32        |          44:20:06          |         16.00         |             22:10:03            |

|                 openstack/cinder                 |        127        |       3518       |         2746:32:43         |         27.70         |             21:37:34            |

|      openstack/openstack-ansible-os_tacker       |         3         |        45        |          63:03:01          |         15.00         |             21:01:00            |

|                openstack/octavia                 |         38        |       917        |         764:50:26          |         24.13         |             20:07:38            |

|         openstack/cinder-tempest-plugin          |         13        |       176        |         241:51:59          |         13.54         |             18:36:18            |

|         openstack/neutron-tempest-plugin         |         8         |       129        |         147:41:46          |         16.12         |             18:27:43            |

|                openstack/devstack                |         24        |       536        |         442:16:49          |         22.33         |             18:25:42            |

|                openstack/neutron                 |        186        |       3580       |         3283:39:42         |         19.25         |             17:39:14            |

|                  openstack/nova                  |        251        |       6527       |         4383:59:41         |         26.00         |             17:27:58            |

|       openstack/openstack-ansible-plugins        |         7         |       127        |         116:04:29          |         18.14         |             16:34:55            |

|     openstack/openstack-ansible-repo_server      |         5         |        72        |          82:42:24          |         14.40         |             16:32:28            |

|                 openstack/ironic                 |         79        |       2159       |         1284:28:46         |         27.33         |             16:15:33            |

|      openstack/ansible-role-systemd_service      |         3         |        52        |          46:55:01          |         17.33         |             15:38:20            |

|                 openstack/manila                 |         36        |       856        |         561:16:54          |         23.78         |             15:35:28            |

|                openstack/bifrost                 |         6         |       164        |          93:30:55          |         27.33         |             15:35:09            |

|                 openstack/kolla                  |         35        |       997        |         530:29:59          |         28.49         |             15:09:25            |

|                 openstack/glance                 |         43        |       718        |         616:18:37          |         16.70         |             14:19:58            |

|         openstack/manila-tempest-plugin          |         13        |       177        |         178:58:11          |         13.62         |             13:46:00            |


# Gate queue

+--------------------------------------------------+-------------------+------------------+----------------------------+-----------------------+-------------------------16:35:44 [270/9949]

|                     Project                      | Number of patches | Total Nodes used | Total time used [nodehour] | Nodes per patch (avg) | Time per patch (avg) [nodehour] |

+--------------------------------------------------+-------------------+------------------+----------------------------+-----------------------+---------------------------------+

|   openstack/openstack-ansible-rabbitmq_server    |         1         |        31        |          32:04:31          |         31.00         |             32:04:31            |

|         openstack/octavia-tempest-plugin         |         2         |        38        |          43:36:32          |         19.00         |             21:48:16            |

|    openstack/openstack-ansible-galera_server     |         3         |        60        |          64:21:11          |         20.00         |             21:27:03            |

|     openstack/openstack-ansible-os_keystone      |         1         |        18        |          20:01:48          |         18.00         |             20:01:48            |

|           openstack/openstack-ansible            |         24        |       460        |         462:28:00          |         19.17         |             19:16:10            |

|     openstack/openstack-ansible-repo_server      |         5         |        76        |          91:39:29          |         15.20         |             18:19:53            |

|      openstack/openstack-ansible-os_horizon      |         3         |        39        |          52:58:46          |         13.00         |             17:39:35            |

|       openstack/openstack-ansible-plugins        |         3         |        48        |          51:28:19          |         16.00         |             17:09:26            |

|       openstack/openstack-ansible-os_aodh        |         1         |        13        |          16:30:26          |         13.00         |             16:30:26            |

|      openstack/openstack-ansible-os_octavia      |         2         |        24        |          32:52:12          |         12.00         |             16:26:06            |

|      openstack/openstack-ansible-os_neutron      |         4         |        61        |          65:06:05          |         15.25         |             16:16:31            |

|      openstack/openstack-ansible-os_cinder       |         1         |        12        |          15:51:46          |         12.00         |             15:51:46            |

|                  openstack/nova                  |         91        |       1788       |         1326:41:46         |         19.65         |             14:34:44            |

|                openstack/tempest                 |         8         |       181        |         116:36:02          |         22.62         |             14:34:30            |

|      openstack/openstack-ansible-os_glance       |         1         |        13        |          14:28:12          |         13.00         |             14:28:12            |

|      openstack/openstack-ansible-os_skyline      |         3         |        34        |          41:15:36          |         11.33         |             13:45:12            |

|                openstack/neutron                 |         87        |       1149       |         1033:31:12         |         13.21         |             11:52:46            |

| openstack/openstack-ansible-lxc_container_create |         1         |        19        |          11:49:22          |         19.00         |             11:49:22            |

|      openstack/openstack-ansible-os_ironic       |         4         |        36        |          46:49:08          |          9.00         |             11:42:17            |

|                openstack/devstack                |         11        |       183        |         121:32:26          |         16.64         |             11:02:56            |

|      openstack/openstack-ansible-lxc_hosts       |         2         |        27        |          22:00:46          |         13.50         |             11:00:23            |

|           openstack/ansible-role-httpd           |         1         |        17        |          10:55:36          |         17.00         |             10:55:36            |

|       openstack/openstack-ansible-os_swift       |         1         |        9         |          10:54:59          |          9.00         |             10:54:59            |

|             openstack/kolla-ansible              |         44        |       847        |         468:00:27          |         19.25         |             10:38:11            |

|         openstack/ironic-tempest-plugin          |         7         |       121        |          73:14:18          |         17.29         |             10:27:45            |

|     openstack/openstack-ansible-os_barbican      |         1         |        9         |          10:22:22          |          9.00         |             10:22:22            |

|       openstack/openstack-ansible-os_heat        |         1         |        9         |          10:20:01          |          9.00         |             10:20:01            |

|    openstack/openstack-ansible-os_ceilometer     |         1         |        9         |          10:18:23          |          9.00         |             10:18:23            |

|                openstack/bifrost                 |         6         |       108        |          60:34:38          |         18.00         |             10:05:46            |

|     openstack/openstack-ansible-os_masakari      |         1         |        9         |          10:00:38          |          9.00         |             10:00:38            |

|     openstack/ansible-role-systemd_networkd      |         11        |       136        |         109:26:42          |         12.36         |             09:56:58            |

|    openstack/openstack-ansible-os_cloudkitty     |         1         |        9         |          09:56:58          |          9.00         |             09:56:58            |

|     openstack/openstack-ansible-os_designate     |         1         |        9         |          09:54:08          |          9.00         |             09:54:08            |

|      openstack/openstack-ansible-os_mistral      |         1         |        9         |          09:50:16          |          9.00         |             09:50:16            |

|      openstack/openstack-ansible-os_tacker       |         1         |        9         |          09:38:43          |          9.00         |             09:38:43            |

|                 openstack/kolla                  |         14        |       223        |         134:48:14          |         15.93         |             09:37:43            |

|      openstack/openstack-ansible-os_magnum       |         1         |        9         |          09:11:37          |          9.00         |             09:11:37            |

|   openstack/openstack-ansible-openstack_hosts    |         1         |        12        |          08:58:07          |         12.00         |             08:58:07            |

|       openstack/openstack-ansible-os_nova        |         1         |        9         |          08:49:26          |          9.00         |             08:49:26            |

|                 openstack/swift                  |         21        |       484        |         180:31:42          |         23.05         |             08:35:47            |

|              openstack/neutron-lib               |         10        |        94        |          82:54:52          |          9.40         |             08:17:29            |

|            openstack/ansible-role-pki            |         3         |        40        |          24:50:35          |         13.33         |             08:16:51            |

|                 openstack/kayobe                 |         21        |       372        |         173:09:54          |         17.71         |             08:14:45            |

|                 openstack/glance                 |         12        |       140        |          94:42:31          |         11.67         |             07:53:32            |

|       openstack/openstack-ansible-os_trove       |         1         |        6         |          07:50:27          |          6.00         |             07:50:27            |

|     openstack/ansible-role-python_venv_build     |         1         |        6         |          07:34:53          |          6.00         |             07:34:53            |

|                 openstack/ironic                 |         46        |       671        |         337:51:59          |         14.59         |             07:20:41            |

|             x/devstack-plugin-tobiko             |         6         |        57        |          42:46:30          |          9.50         |             07:07:45            |

|                 openstack/cinder                 |         20        |       204        |         136:59:33          |         10.20         |             06:50:58            |

|              openstack/requirements              |         47        |       1404       |         320:35:23          |         29.87         |             06:49:15            |

|               openstack/placement                |         4         |        49        |          27:11:05          |         12.25         |             06:47:46            |




[1] https://github.com/slawqo/tools/blob/master/jobs_time/infra_usage_stats.py

[2]https://paste.opendev.org/show/bzS4jJgGxMq9UUBfwKNn/

[3] https://paste.opendev.org/show/bbrKIKUAGiHsntU1cQ7L/


--

Slawek Kaplonski

Principal Software Engineer

Red Hat