On Wed, Mar 24, 2021 at 11:05 PM Chris Murphy <li...@colorremedies.com> wrote:
> On Wed, Mar 24, 2021 at 6:09 AM Richard Shaw <hobbes1...@gmail.com> wrote: > > > > I was syncing a 100GB blockchain, which means it was frequently getting > appended to, so COW was really killing my I/O (iowait > 50%) but I had > hoped that marking as nodatacow would be a 100% fix, however iowait would > be quite low but jump up on a regular basis to 25%-50% occasionally locking > up the GUI briefly. It was worst when the blockchain was syncing and I was > rm the old COW version even after rm returned. I assume there was quite a > bit of background tasks that were still updating. > > > I assume for a blockchain, starts small and just grows / appended to. > > Append writes are the same on overwriting and cow file systems. You > might get slightly higher iowait because datacow means datasum which > means more metadata to write. But that's it. There's no data to COW if > it's just appending to a file. And metadata writes are always COW. > Hmm... While still annoying (chrome locking up because it can't read/write to it's cache in my /home) my desk chair benchmarking says that it was definitely better as nodatacow. Now that I think about it, initial syncing I'm likely getting the blocks out of order which would explain things a bit more. I'm not too worried about nodatasum for this file as the nature of the blockchain is to be able to detect errors (intentional or accidental) already and should be self correcting. You could install bcc-tools and run btrfsslower with the same > (exclusive) workload with datacow and nodatacow to see if latency is > meaningfully higher with datacow but I don't expect that this is a > factor. > That's an interesting tool. So I don't want to post all of it here as it could have some private info in it but I'd be willing to share it privately. One interesting output now is the blockchain file is almost constantly getting written to but since it's synced, it's only getting appended to (my guess) and I'm not noticing any "chair benchmark" issues but one of the writes did take 1.8s while most of them were a few hundred ms or less. iowait just means the CPU is idle waiting for IO to complete. It could > do other things, even IO, if that IO can be preempted by proper > scheduling. So the GUI freezes are probably because there's some other > file on /home, along with this 100G file, that needs to be accessed > and between the kernel scheduler, the file system, the IO scheduler, > and the drive, it's just reluctant to go do that IO. Again, bcc-tools > can help here in the form of fileslower, which will show latency > spikes regardless of the file system (it's at the VFS layer and thus > closer to the application layer which is where the GUI stalls will > happen). > I'm pretty sure that's exactly what's happening. But is there a better I/O scheduler for traditional hard disks, currently I have: $ cat /sys/block/sda/queue/scheduler mq-deadline kyber [bfq] none > Any way this workload can be described in sufficient detail that > anyone can reproduce the setup, can help make it possible for multiple > other people trying to collect the information we'd need to track down > what's going on. And that also includes A/B testing, such as the exact > same setup but merely running the 100G (presumably it is not actually > the exact size but the workload as the sync is happening) > I was rounding slightly, so yes not exactly 100GB but as the nature of a blockchain it keeps growing: $ ls -sh data.mdb 101G data.mdb A large bittorrent download should also be similar since you don't get the parts in order, but perhaps it's smart enough to allocate all the space on the front end? Thanks, Richard
_______________________________________________ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure