[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24937: "deleting unused links" GC phase is too slow
From: |
Ricardo Wurmus |
Subject: |
bug#24937: "deleting unused links" GC phase is too slow |
Date: |
Thu, 16 Apr 2020 15:26:58 +0200 |
User-agent: |
mu4e 1.2.0; emacs 26.3 |
Ricardo Wurmus <address@hidden> writes:
> Ludovic Courtès <address@hidden> writes:
>
>> Ricardo, Roel: would you be able to run that links-traversal.c from
>> <https://debbugs.gnu.org/cgi/bugreport.cgi?filename=links-traversal.c;bug=24937;msg=25;att=1>
>> on a machine with a big store, as described at
>> <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24937#25>?
>
> I just ran this on my workstation in the office where I regularly build
> packages. Here’s the output of “df -i /gnu”
>
> Filesystem Inodes IUsed IFree IUse% Mounted on
> /dev/mapper/fedora-root 3301376 1098852 2202524 34% /
>
> Probably not large enough to derive conclusions about hydra’s behaviour.
>
> [I can’t run it on the shared store at the MDC because NFS performance is
> too poor. I recently ran “guix gc --optimize” to dedupe the shared
> store (post-build deduplication is disabled since a few weeks) and it’s
> at 3,197,489 used inodes.]
>
> Here are the results of running the link-traversal code on my
> workstation:
>
> --8<---------------cut here---------------start------------->8---
> rwurmus in ~: gcc -std=gnu99 -Wall links-traversal.c -DMODE=3
> rwurmus in ~: sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
> rwurmus in ~: time ./a.out
> 412825 dir_entries, 107 seconds
> stat took 0 seconds
>
> real 1m47.264s
> user 0m0.214s
> sys 0m1.314s
>
> rwurmus in ~: gcc -std=gnu99 -Wall links-traversal.c -DMODE=2
> rwurmus in ~: sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
> rwurmus in ~: time ./a.out
> 12821 dir_entries, 107 seconds (including stat)
>
> real 1m46.475s
> user 0m0.201s
> sys 0m1.309s
> --8<---------------cut here---------------end--------------->8---
I ran this for the first time on ci.guix.gnu.org, which has a very big
store (currently at around 29TB).
df -i /gnu:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 610021376 132350406 477670970 22% /gnu
I had to increase the number of MAX_ENTRIES to 135000000.
I forgot to drop caches initially. This is the first run:
--8<---------------cut here---------------start------------->8---
root@berlin ~ [env]# gcc links-traversal.c -DMODE=3 -o links-traversal
root@berlin ~ [env]# time ./links-traversal
57079502 dir_entries, 3906 seconds
stat took 136 seconds
real 67m48.145s
user 0m59.575s
sys 2m30.065s
--8<---------------cut here---------------end--------------->8---
I aborted the run after I dropped caches after 67 minutes.
I’m going to continue testing on one of the build nodes, and I’ll try
using statx.
--
Ricardo
- bug#24937: "deleting unused links" GC phase is too slow,
Ricardo Wurmus <=