Hi Roberto,
Network attached storage such as EBS can certainly hurt your commit times as a result of the increased latency they have compared to locally attached disks. Latency (time per 4KB write I/O) is really the main metric we care about for log disks. We have observed with AWS EBS storage that as you get close to the IOPS limit, your latency will suffer, so be sure to also track how close you are to the IOPS limit. EBS gp3 is of course slower (but cheaper) than io2. io2 will have lower latency which makes it a better choice for log disks. However before you consider spending more, you should confirm log disk write times are in fact your commit time bottleneck. For some details on how to identify a log disk bottleneck, I suggest you look at https://community.ibm.com/community/user/blogs/kostas-rakopoulos/2025/03/25/db2mon-intro specifically section "Common bottleneck example: Slow log writes".
I will call out a couple things I noticed that go against best practices:
>>> A single xfs filesystem has been configured over the EBS gp3 volume and some subdirectory have been created where to store all the database objects (dbpath, storagepath, logpath, mirrorlogpath, failarchpath).
This is very unlikely to perform well, your IOPS are being shared between db path, log path, mirror log, etc. You should have dedicated IOPS for log disks. If log mirroring is enabled, you will now be paying the log disk latency twice during commit time. For log mirroring you really should use a separate disk and file system not only for performance reasons but also for redundancy (e.g., if fs with logs is corrupted, mirrored logs will be corrupted as well). So you'd probably want 4 EBS volumes, one for data, one for logs, one for mirrored logs and another for your log archives.
>>> The job performs about 500.000 UPDATE statements updating a table row by row, the COMMIT is done at every SQL statement
>>> ... they have changed the application behaviour to have a COMMIT every 1.000 rows updated but the COMMIT time seems still high.
You're on the right track here that you shouldn't be committing so frequently. Even ever 1000 rows is probably too frequent. Slow log disks combined with too frequently committing will amplify the bottleneck caused by slow log disks.
Thanks,
Kostas