Skip to content

Performance issues after upgrading to 4.12.3 (from 4.11.2) #4646

Open
@zgael

Description

@zgael

Current Behavior

Hello,

I have deployed Dependency Track at my company, and it is widely used.
We may use it slightly differently than we're supposed to, please let me know if that's the case : although we have let's say a hundred projects in the company, there are around 4000 projects in dependency track, as our projects are very lively, and any new version published to Dependency Track is counted as a new project. We are obviously planning to cleanup the older projects that do not make much sense anymore.

Still, this is where we are. And we have upgraded from 4.11.2 to 4.12.3, and are experiencing performance issues :

  • frontend takes a long time to load the project list
  • API requests on the project list (api/v1/project?page=1&limit=100) also take a long time (between 15 and 45 secs)
  • Used in conjunction with Jenkins Dependency Track plugin , publishing BOMs reaches timeout (although this is configurable, the performance issue also impacts this use case).

Deployed in the cloud, we have observed the pod/node metrics, but nothing really stands out (no huge CPU/RAM consumption, seems like IO waits may be in cause).

Yesterday, we tried to reboot everything, to get cleaner after the upgrade process.
It was better... for one day, and we considered it fixed.... until today, the performance issues came back.

It seems the database is using a lot more disk than before, do you have any experience with ~4000 projects, or an idea of what could explain the performance changes in the "recent" versions ?

Also, we've been wondering if the issue could be linked to the fact that the apiserver pod has been automatically killed several times during the upgrade process (readinessProbe delay was too low to withstand the upgrade progress) - few errors appear in the database log :

ERROR: duplicate key value violates unique constraint "CONFIGPROPERTY_U1" DETAIL: Key ("GROUPNAME", "PROPERTYNAME")=(artifact, bom.validation.mode) already exists

STATEMENT: select * from 'public.SCHEMAVERSION'; 2025-02-12 10:03:25.108 GMT [2812] ERROR: relation "public.schemaversion" does not exist at character 15

It doesn't seem to be big blocking errors, but still I'm not fond of ignoring them...

Any feedback, pointers on what could explain the situation, where to dig further, or what to do to improve things ?

Thanks !

Steps to Reproduce

Not so easy to reproduce, as the installation of the 4.12.3 version on a testing environment went smooth ! May have to do with the database load as there are not so many projects in the testing environment.

Expected Behavior

UI loads fast enough (sometimes may exceed 30 secs, which seems to be the frontend timeout) and interactions with Dependency Track are fluid enough.

Dependency-Track Version

4.12.3

Dependency-Track Distribution

Container Image

Database Server

PostgreSQL

Database Server Version

11.6.0

Browser

N/A

Checklist

EDIT : At first, I said the upgrade was from 4.8.2 to 4.12.3, but actually it was from 4.11.2 to 4.12.3.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions