go-gitea/gitea

As long as there is a runner present, it will cause continuous disk writing.

Closed this issue · 1 comments

Description

  1. Deploy Gitea using Docker. The database used is MySQL.
  2. Create a runner and ensure that at least one of the runners is online.(Whether it is the Docker-deployed Act Runner or the local Windows-based act_runner daemon)
  3. Use iotop to check the disk write speed. The disk write speed is approximately 1MB/s.
30666 be/4 999 0.00 B 13.62 M 0.00 % 0.16 % mysqld [ib_log_flush] 
30664 be/4 999 0.00 B 5.80 M 0.00 % 0.06 % mysqld [ib_log_checkpt] 
30648 be/4 999 0.00 B 3.00 M 0.00 % 0.01 % mysqld [ib_pg_flush_co] 
30647 be/4 999 0.00 B 672.00 K 0.00 % 0.03 % mysqld [ib_io_wr-4] 
30645 be/4 999 0.00 B 608.00 K 0.00 % 0.03 % mysqld [ib_io_wr-2] 
30646 be/4 999 0.00 B 448.00 K 0.00 % 0.02 % mysqld [ib_io_wr-3] 
30668 be/4 999 0.00 B 284.00 K 0.00 % 0.00 % mysqld [ib_log_writer]
mysql> SELECT table_name, update_time
FROM information_schema.tables
WHERE table_schema='gitea' 
ORDER BY update_time DESC -> LIMIT 10; 
|   TABLE_NAME       |      UPDATE_TIME      |
|:------------------:|:---------------------:|
| action_runner      | 2025-09-02 03:45:39   |
| action_runner_token| 2025-09-02 03:40:22   |
| user               | 2025-09-02 03:38:05   |
| access_token       | 2025-09-01 23:22:28   |
| auth_token         | 2025-09-01 03:21:05   |
| access             | NULL                  |
| action             | NULL                  |
| action_artifact    | NULL                  |
| action_run         | NULL                  |
| action_run_index   | NULL                  |

Gitea Version

1.24.5

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

No response

Git Version

2.49.1

Operating System

Synology

How are you running Gitea?

I am running Gitea on a Synology NAS using Docker. The container is based on the official gitea/gitea:latest image.

Deployment details:

Platform: Synology DSM 7.2.1

Installation method: Docker (Synology Docker UI)

Gitea image: gitea/gitea:latest

Database: MySQL 8.0 (running as a separate Docker container)

Database

MySQL/MariaDB

Looks to be a duplicate of #33881.

The problem has to do with the fact that when the runner is registered and running, we capture the time we last heard from it and write it to the database. A good solution mentioned in the issue is to just store this value in memory or a service like Redis.

For now I believe there maybe a solution to reduce the database writes, and that is to increase the time your act_runner instance polls the Gitea instance for tasks. The config should be fetch_interval.