OSX performance of near-full drive

0

OSX performance degrades terribly when writing to an HFS+ partition which is over about 96% full. It seems that every write request triggers some sort of process which takes about 10 seconds, during which time all I/O access to the partition is blocked.

During this time, the partition is not idle, as this output from iostat during a file copy to a full partition shows:

      disk2       cpu     load average
KB/t tps  MB/s  us sy id   1m   5m   15m
4.45  29  0.13  19 12 69  2.34 2.00 1.78
4.00 4472 17.47   6 12 82  2.34 2.00 1.78
4.00 4454 17.40   4 12 84  2.31 2.00 1.79
4.00 4394 17.16   6 13 82  2.31 2.00 1.79
4.00 4352 17.00   6 12 82  2.31 2.00 1.79
4.00 4425 17.28   4 12 84  2.31 2.00 1.79
6.00 4089 23.97   6 11 82  2.31 2.00 1.79
4.00 4450 17.38   6 12 83  2.21 1.98 1.78
4.00 4433 17.31   4 11 84  2.21 1.98 1.78
4.00 4464 17.44   6 11 84  2.21 1.98 1.78
4.00 4465 17.44   6 11 83  2.21 1.98 1.78
4.00 4424 17.28   5 12 83  2.21 1.98 1.78
4.00 4482 17.51   6 11 84  2.11 1.97 1.78
4.00 4388 17.14   6 11 83  2.11 1.97 1.78
4.00 4265 16.66   5 12 83  2.11 1.97 1.78
4.00 4573 17.86  10 12 77  2.11 1.97 1.78
5.84 4437 25.30   6 12 82  2.11 1.97 1.78
4.00 4424 17.28   4 12 83  2.02 1.95 1.77
4.00 4647 18.15  10 13 77  2.02 1.95 1.77
4.00 4511 17.62   6 13 81  2.02 1.95 1.77
      disk2       cpu     load average
KB/t tps  MB/s  us sy id   1m   5m   15m
4.00 4430 17.30   5 12 83  2.02 1.95 1.77
4.00 4480 17.50   6 11 83  2.02 1.95 1.77
4.00 4466 17.44   6 11 83  2.02 1.95 1.77
4.00 4343 16.97   4 11 84  2.02 1.95 1.77
4.00 4317 16.86   5 12 83  2.02 1.95 1.77
4.00 4471 17.47   6 11 83  2.02 1.95 1.77
5.86 4387 25.10   4 11 85  2.02 1.95 1.77
4.00 4453 17.40   6 12 82  1.94 1.94 1.77
4.00 4465 17.44   6 11 83  1.94 1.94 1.77
4.00 4427 17.29   4 11 84  1.94 1.94 1.77
4.00 4435 17.32   6 12 82  1.94 1.94 1.77
4.00 4468 17.45   6 12 82  1.94 1.94 1.77
4.00 4435 17.33   4 12 84  1.94 1.94 1.77
4.00 4433 17.32   6 12 81  2.02 1.95 1.77
4.00 4320 16.88   6 12 82  2.02 1.95 1.77
4.00 4417 17.25   4 12 84  2.02 1.95 1.77
4.00 4465 17.44   6 12 82  2.02 1.95 1.77
5.85 4410 25.19   6 11 83  2.02 1.95 1.77
4.00 4439 17.34   4 11 84  2.02 1.95 1.77
4.00 4478 17.49   6 11 83  2.02 1.95 1.77

The 10 second intervals can be seen, during which time the drive is performing 17 MB/s of I/O. Then after 10 seconds it writes about 8 MB of the file copy to disk and goes back into block.

I have seen an option for, I think, ext3 on Linux where a partition will switch from optimise for performance to optimise for space when a drive reaches a configurable percentage full.

I'm wondering whether OSX has some sort of similar option, whereby I can optimise my HFS+ partition to not suffer this problem.

I know the simple answer is "so don't let your partition get that full". And for my 750 GB internal drive that's a fine solution. But I have an external 8 TB RAID and the last 300 GB of space is effectively unusable. Losing a couple of GB to this issue I can deal with… losing 300 GB is painful.

Thank you!

Kat

Posted 2015-02-14T04:25:58.797

Reputation: 3

Answers

1

It's defragmentation, and there's no way round it. When an HFS+ drive is nearly full, it has to constantly move blocks around to keep contiguous free space. Defragmentation tools are available, but I doubt they'll help much. You should consider 90% usage as effectively full on an HFS+ volume.

Mike Scott

Posted 2015-02-14T04:25:58.797

Reputation: 4 220

Thanks Mike. Not the answer I wanted to hear. Looks like I need to investigate alternative file systems on my large storage devices. – Kat – 2015-02-16T05:31:51.880