[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Performance on NFS
From: |
Ludovic Courtès |
Subject: |
Performance on NFS |
Date: |
Fri, 16 Jun 2017 17:23:10 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hello!
I just pushed another improvement:
d27cc3bfaafe6b5b0831e88afb1c46311d382a0b significantly reduces the
number of ‘stat’ calls when discovering .scm files. I’d be curious to
see what impact it has on NFS.
Commit cbee955901b3e252ebdeb8066a2196055149198a also reduces the number
of ‘stat’ calls.
After that I have:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env strace -c guix environment --ad-hoc coreutils -- true
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
27.03 0.006916 1 13585 read
24.64 0.006306 1 9701 8029 stat
21.25 0.005438 1 10698 write
11.05 0.002828 2828 1 wait4
3.60 0.000922 1 1598 122 open
2.88 0.000738 4 203 28 futex
1.79 0.000458 1 670 mmap
1.75 0.000448 1 642 mprotect
1.64 0.000419 0 1476 close
1.36 0.000347 0 1411 3 lseek
0.74 0.000190 2 107 sendfile
0.70 0.000180 4 51 getdents
0.62 0.000159 0 886 fstat
0.54 0.000137 1 196 lstat
0.22 0.000057 1 99 brk
0.09 0.000024 4 6 clone
0.02 0.000005 1 5 munmap
0.02 0.000005 0 19 rt_sigprocmask
0.02 0.000004 0 27 clock_gettime
0.01 0.000003 3 1 getrandom
0.01 0.000002 2 1 connect
0.01 0.000002 1 3 prlimit64
0.00 0.000001 1 2 2 access
0.00 0.000001 1 1 socket
0.00 0.000000 0 5 rt_sigaction
0.00 0.000000 0 7 1 ioctl
0.00 0.000000 0 1 madvise
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 uname
0.00 0.000000 0 3 fcntl
0.00 0.000000 0 1 getcwd
0.00 0.000000 0 1 statfs
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 2 sched_getaffinity
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 3 pipe2
------ ----------- ----------- --------- --------- ----------------
100.00 0.025590 41417 8185 total
$ git describe
v0.13.0-804-gf4453df9a
--8<---------------cut here---------------end--------------->8---
The number of ‘stat’ calls is a function of the number of entries in
‘GUILE_LOAD_PATH’ and ‘GUILE_LOAD_COMPILED_PATH’. I can’t think of any
easy way to reduce it further.
The many ‘read’ and ‘write’ are due to the unbuffered port used for
RPCs, and definitely not great when talking to a remote store. I’ve
tried to add some buffering but that turned out to be trickier than I
had hoped for.
To be continued!
Ludo’.
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/01
- Re: Combining Guix, direnv and Emacs for environment customisation, Ludovic Courtès, 2017/06/03
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/03
- Re: Combining Guix, direnv and Emacs for environment customisation, Ludovic Courtès, 2017/06/04
- Re: Combining Guix, direnv and Emacs for environment customisation, Roel Janssen, 2017/06/05
- Performance on NFS, Ludovic Courtès, 2017/06/07
- Re: Performance on NFS, Roel Janssen, 2017/06/07
- Re: Performance on NFS, Ludovic Courtès, 2017/06/09
- Re: Performance on NFS, Roel Janssen, 2017/06/12
- Re: Performance on NFS, Ludovic Courtès, 2017/06/12
- Performance on NFS,
Ludovic Courtès <=
- Re: Performance on NFS, Roel Janssen, 2017/06/17
- Re: Performance on NFS, Ludovic Courtès, 2017/06/17
- Re: Performance on NFS, Roel Janssen, 2017/06/17
- Re: Performance on NFS, Ricardo Wurmus, 2017/06/18
- RPC performance, Ludovic Courtès, 2017/06/19
- Re: RPC performance, Ludovic Courtès, 2017/06/19
- Re: RPC performance, Ricardo Wurmus, 2017/06/19
- Re: RPC performance, Andy Wingo, 2017/06/22
- Re: RPC performance, Ludovic Courtès, 2017/06/22
- Re: RPC performance, Andy Wingo, 2017/06/23