Date: Fri, 4 Sep 1998 08:38:43 -0400 From: cmascott@world.std.com (Carl Mascott) To: hackers@FreeBSD.ORG Subject: Re: Reading/writing /usr/ports is VERY slow Message-ID: <199809041238.AA00816@world.std.com>
next in thread | raw e-mail | index | archive | help
>Carl Mascott wrote: >>>In short, I think that there are more long inter-group seeks on FFS >>>than there need be, due to the directory placement policy. I consider >>>it undesirable to spread directories out as much as possible all over >>>the filesystem. >> >Mike Smith wrote: >>One of the substantial contributors to this problem has been the >>FreeBSD policy of limiting the number of cg's by faking the disk >>layout. The intention here was to reduce the amount of space wasted in >>administrative overhead, as well as increase the likelihood of >>contiguous allocation. Unfortunately one of the less wonderful >>consequences has been the substantial increase in inter-cg distances. > Carl Mascott wrote: >For a filesystem of any given size the number of cg's is not a >factor, at least not as long as there are more than a couple of >them. Mike Smith wrote: >The number of cg, or more to the point their layout *is* somewhat >significant, simply because they can still consume moderately >substantial amounts of space. They also seem to be less efficient if >you have zillions of them. Clarification: For a filesystem of any given size the number of cg's is not a factor affecting throughput in /usr/ports. Carl Mascott wrote: >> However, >> if a cg proximity criterion were added to the new-cg-chooser, >> then the size of a cg would become a factor, although I don't >> know how important a factor. For what it's worth, vxfs also >> uses 32 MB cg's ("allocation units" in vxfs-speak). > Mike Smith wrote: >I don't actually think that the cg size would be an issue; what we're >talking about here is allocating the directory inode, and the data >blocks for the directory will follow. In most cases, the data for >these directories will move around as they're extended anyway, as they >accumulate frags and move into whole blocks. I think it would be an issue. Suppose for the sake of argument that 50% of the new directories were within 1 cg of their parent. If cg's were 4 MB instead of 32 MB, then 50% of the seeks would be approximately 1/8 as long. Even if you grant this, though, this is not a sufficient reason to change the cg size. To keep this in perspective I think this is a minor side issue to the main issue of how or whether to introduce some lumpiness into the directory allocation policy. > Meanwhile, do you have the courage to try the code snippet I included? > I'd be interested to know if it had any affect on your pathalogical > case... Maybe, but I want to let the dust settle first, and see if Kirk McKusick weighs in with anything interesting. I would also want to become familiar with the FFS source code before I did anything to it. One problem with my trying it is that it will never get a good workout on my box, a single-user workstation with ~50% full filesystems. I could certainly see any improvement in the /usr/ports throughput, but behavior with a nearly full filesystem would never get tested. -- Carl Mascott cmascott@world.std.com uunet!world!cmascott To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809041238.AA00816>