On Sat, Aug 8, 2009 at 12:40 AM, <[email protected]> wrote:
> Paul Hartman <[email protected]> [09-08-03 23:09]:
>> On Mon, Aug 3, 2009 at 3:22 PM, Grant<[email protected]> wrote:
>> > I know Linux systems aren't supposed to become fragmented, but I've
>> > also read that it can happen eventually. I'm on ext3. I've read that
>> > ext4 will have a defragmenter but that it doesn't have one yet.
>>
>> It's not that they aren't supposed to become fragmented, it is that
>> they try to avoid it. There is a big difference, and things like
>> streaming writes (downloads, bittorrents, etc) can cause extreme
>> fragmentation.
>>
>> The time-honored way of fixing this is "backup, delete, restore". In
>> my case my simple defragmenter is to move a file to tmpfs and then
>> move it back to the hard drive. I always do this to files I'm about to
>> burn to a CD/DVD to ensure the read speed is optimal.
>>
>> > Has anyone tried the shake defragmenter?
>>
>> Yes, nothing has blown up yet. :)
>
> Hi,
>
> does anyone know a source of information -- except reading the C-source
> of shake itsself -- what the meaning of the different columns of
>
> shake -pvv <dir>
>
> are ?
No. :) There's no documentation really. The source cide is funny,
everything is named after law, investigations, accused, trials and
judgments. :) There best I can do is reproduce the part of the source
that shows this info and hope you can infer from the names what they
are showing:
/* Show statistics about an accused */
void
show_reg (struct accused *a, struct law *l)
{
/* Show file status */
printf ("%lli\t%lli\t%lli\t%i\t%i\t%i\t%i\t%s",
a->ideal, a->start / 1024, a->end / 1024, a->fragc, a->crumbc,
(int) (a->age / 3600 / 24), a->guilty, a->name);
/* And, eventualy, list of frags and crumbs */
if (l->verbosity > 2 && a->poslog && a->poslog[0] != -1)
{
uint n;
putchar ('\t');
for (n = 0; a->sizelog[n + 1] != -1; n++)
printf ("%lli:%lli,", a->poslog[n] / 1024, a->sizelog[n] / 1024);
printf ("%lli:%lli\n", a->poslog[n] / 1024, a->sizelog[n] / 1024);
}
else
putchar ('\n');
}