Re: Optimizing disk-I/O [was Re: [ANNOUNCE] hotplug-ng 001 release]

Adam Goode
2005-02-15T20:48:45Z

Mac OS X has a similar thing, with a pretty simple description of how
they do it:

http://developer.apple.com/technotes/tn/tn1150.html#HotFile

Adam

On Tue, 2005-02-15 at 13:56 -0600, Linas Vepstas wrote:
> On Tue, Feb 15, 2005 at 12:43:29AM +0100, Diego Calleja was heard to remark:
> >
> > Also, it analyzes all those io "logs" and defragments
>
> I dislike hearing/reading about what XP does, since its probably patented,
> and I don't want that shadow hanging over Linux.
>
> I assume that the following simple idea, obvious to any practictioner
> versed in the state of the art, is not patented or patentable:
>
> > linux can do decisions like "this system starts openoffice, so I'm going to move the
> > binaries to another place of the disk where they'll load faster" or "when X program
> > uses /lib/libfoo.so it also uses /lib/libbar.so, so I'm going to put those two together
> > in the disk because that will avoid seeks".
>
> Now I like this idea. It need not have anything to do with startup,
> or with any particular program or distro whatsoever. Rather, one
> would have a daemon keeping track of disk i/o patterns, and constantly
> trying to figure out if there is a rearrangement of the sectors on disk
> that would minimize i/o seeks based on past uasge.
>
> The optimization routine could be some simulated annealing or
> genetic algorithm or whatever whiz-bang technique someone is into.
> Just keep it running in the background, low priority, constantly...
> This would give you the best "time weighted" disk access performance,
> although it would potentially hurt boot times, since most users spend
> most of thier time doing disk access other than booting ...
>
> --linas
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/