After upgrade some aptly operations became extremely slow (hours vs minutes), suspect ext4 discard on QEMU
@neolynx ya está trabajando en esto.
Desde el 17/6/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Hi! After upgrading aptly we see a huge slowdown on a clone machine with (as far as we can tell) the same dataset and workload.
What changed
- Old aptly:
1.4.0+ds1-4+b4 - New aptly:
1.6.2
Symptoms (CI timings)
Before:
- Deploy pool and staging: ~5 min
- Deploy releases: ~5 min
After upgrade:
- Deploy pool and staging: ~1h 25m
- Deploy releases: >5h
How we run aptly
We run aptly api serve and our CI connects via a UNIX socket.
rootDir is on ext4 inside a QEMU/KVM VM.
Filesystem / storage
We noticed the filesystem is mounted with discard:
/dev/sda1 ... ext4 (rw,relatime,discard,...)
The virtual disk supports TRIM/UNMAP:
lsblk -DshowsDISC-GRAN=4K,DISC-MAX=1G,ROTA=0(QEMU HARDDISK)/sys/block/sda/queue/discard_max_bytes = 1073741824/sys/block/sda/queue/discard_granularity = 4096
TRIM / discard test
With nodiscard, fstrim -av trims a lot of data:
/: 26.2 GiB trimmed, real time ~12s
With discard, fstrim -av reports:
/: 0 B trimmed, real time ~0.02s
This suggests continuous discard is active.
Question / request for guidance
- Is
discardknown to hurt performance for LevelDB-heavy workloads used by aptly (compactions, table file churn, fsync)? - Are there recommended filesystem mount options for aptly databases?
For example, should we avoiddiscardand use periodicfstriminstead? - Any aptly-side debug flags / logging / profiling you recommend to pinpoint why these steps became so slow after 1.6.2?
If you tell us what logs/metrics you need (aptly debug logs, strace snippet, LevelDB stats, etc.), we can provide them.
Thanks!
aptly config (redacted)
{
"FileSystemPublishEndpoints": {},
"S3PublishEndpoints": {
"deb.wirenboard.com": {
"acl": "public-read",
"awsAccessKeyID": "<REDACTED>",
"awsSecretAccessKey": "<REDACTED>",
"bucket": "deb.wirenboard.com",
"plusWorkaround": true,
"region": "eu-west-1"
}
},
"SwiftPublishEndpoints": {},
"architectures": [],
"dependencyFollowAllVariants": false,
"dependencyFollowRecommends": false,
"dependencyFollowSource": false,
"dependencyFollowSuggests": false,
"downloadConcurrency": 4,
"downloadSourcePackages": false,
"downloadSpeedLimit": 0,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"gpgProvider": "internal",
"ppaCodename": "",
"ppaDistributorID": "ubuntu",
"rootDir": "/home/jenkins/aptly-ng"
}
{
"rootDir": "/home/jenkins/aptly-ng",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"dependencyVerboseResolve": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"gpgProvider": "gpg",
"downloadSourcePackages": false,
"skipLegacyPool": true,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"skipContentsPublishing": false,
"FileSystemPublishEndpoints": {},
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}
- Lenguaje dominante
- Go
- Estrellas
- 2.9k
- Forks
- 436
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de aptly-dev/aptly
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
Todos los issues de aptly-dev/aptly
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
yetone/magpie#4095 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
docs: Google Safe Browsing flags go-bonnie.dev as "deceptive" (pipe-to-shell install instructions)Abiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
docs: flags and behaviour in Command Reference/FAQ/claude-skill don't match the binary (-y, --since, --yaml, envelope, --set, kg)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
[Bug]: Telegram bot (v3.11.0): "Ban log" no longer sends the current 3xipl-banned.logPosiblemente ocupada @HamedSanaei la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
MHSanaei/3x-ui#6990 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
bug(tool/internal/instrument): identical inject_code rules from two rule packages are applied twiceAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
open-telemetry/opentelemetry-go-compile-instrumentation#1611 ·
Los mantenedores suelen responder en 2 días