cp(1) of large files is causing 100% CPU utilization and poor transfer
Alan Somers
asomers at freebsd.org
Sat Jan 2 16:30:26 UTC 2021
On Sat, Jan 2, 2021 at 9:12 AM Matthias Apitz <guru at unixarea.de> wrote:
> El día sábado, enero 02, 2021 a las 09:06:24a. m. -0700, Alan Somers
> escribió:
>
> > > As I said, it can be reproduced using only the local file system. This
> > > was setup recently on a SSD:
> > >
> > > # dmesg | grep ada0
> > > ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
> > > ada0: <TS512GMTS430S R0906A> ACS-2 ATA SATA 3.x device
> > > ada0: Serial Number F995890846
> > > ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 1024bytes)
> > > ada0: Command Queueing enabled
> > > ada0: 488386MB (1000215216 512 byte sectors)
> > >
> > > and by this procedure:
> > >
> > > # gpart create -s gpt ada0
> > > # gpart add -t freebsd-boot -s 512k -a4k -l ssdboot ada0
> > > # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i1 ada0
> > > # gpart add -t freebsd-ufs -l ssdrootfs -b 1m -s 2g ada0
> > > # gpart add -t freebsd-ufs -l ssdvarfs -a 1m -s 2g ada0
> > > # gpart add -t freebsd-ufs -l ssdusrfs -a 1m ada0
> > > # newfs -U -t /dev/gpt/ssdrootfs
> > > # newfs -U -t /dev/gpt/ssdvarfs
> > > # newfs -U -t /dev/gpt/ssdusrfs
> > >
> > > # gpart show -l ada0
> > > => 40 1000215136 ada0 GPT (477G)
> > > 40 1024 1 ssdboot (512K)
> > > 1064 984 - free - (492K)
> > > 2048 4194304 2 ssdrootfs (2.0G)
> > > 4196352 4194304 3 ssdvarfs (2.0G)
> > > 8390656 16777216 4 ssdswap (8.0G)
> > > 25167872 975046656 5 ssdusrfs (465G)
> > > 1000214528 648 - free - (324K)
> > >
> > > # mount -t ufs
> > > /dev/gpt/ssdrootfs on / (ufs, local, soft-updates)
> > > /dev/gpt/ssdvarfs on /var (ufs, local, soft-updates)
> > > /dev/gpt/ssdusrfs on /usr (ufs, local, soft-updates)
> > >
> > > When I run in the /usr fs the command
> > >
> > > # cp -p guru-20210102.tar.gz xxx
> > >
> > > it copies around 168M per minute.
> > >
>
> > Is that copying from /usr to /usr, or from /usr to /var or /?
>
> # cd /home/backups
> # cp -p guru-20210102.tar.gz xxx
>
> i.e. from /usr to /usr.
>
> matthias
>
Ok, let's narrow this down. Could you please run the command with the
attached D script ?
sudo dtrace -s copy_file_range.d -c "cp -p guru-20210102.tar.gz xxx"
More information about the freebsd-current
mailing list