0
$\begingroup$

Let say I have time series of disk usage of last 30 days.. Given this information and with the assumption that the disk usage 'pattern' isn't changing dramatically over time, what would be a naive/simple algorithm to predict when is disk going to be full?

$\endgroup$
1

2 Answers 2

1
$\begingroup$

I'd try fitting a linear model (i.e., assume new data arrives at a constant rate) or an exponential one (i.e., new data is proportional to what is already there), and see which one is better.

$\endgroup$
0
$\begingroup$

In addition to the linear model, take your historical data and figure out the variance of memory usage. Because you don't want to know the point of time where the average disk usage exceeds the available space, but the point of time when peak usage exceeds available space.

Say you have 4,000 GB, usage goes up and down by 500 GB every day, but tends to go up on average 100 GB a month, and the average usage today is 1,000 GB, then you will likely run out of disk space when average usage is 3,500 GB (and then you have a sudden peak needing 500 GB more).

You also need to make a difference between "storage used" and "storage required". The OS can cache data that might be required again in the future, but these caches might be optional and could be automatically removed if space is tight. So you might have 1,000 GB of such data that uses space but is not really absolutely required. When your disk space is full, this space can and will be released.

You should also take into account how speed is affected when your disk is full. For spinning hard drives, reading or writing the last tracks on the drive takes more as twice as much time than the first tracks. For SSD drives, it can be worse. An 80% full SSD drive may drop write performance considerably (there are SSD drives where this doesn't happen - they tend to be more expensive, and that may be because the drive that was sold as "100 GB with no performance drop when full" is in reality "150 GB but we won't let you fill it more than 2/3rds").

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.