Question: What Is Cache Overload?
Answer:
Why Does the Cache Need to Be Overloaded?
The front-end write bandwidth is greater than the back-end flush bandwidth. If the cache watermark is too high, the write pressure increases, which may cause the flush latency to fluctuate, causing the I/O latency to fluctuate. Therefore, when the cache task needs to be overloaded, the cache flushing capability needs to be reported to the QoS. The QoS restricts the front-end I/O flow control to reduce the cache watermark.
Conditions for reporting overload of the cache
Cache collects statistics on the watermark and flushing bandwidth. Currently, Dorado V6 collects statistics for 20 periods, each period is 5s. The watermark is less than 30 and less than 70. The watermark is greater than or equal to 30 and less than 70. The cache starts to report overload when the following conditions are met:
(1) Medium-high watermark for three consecutive periods;
(2) 5 out of 20 cycles are medium-high watermarks.
The cache registers an interface with the QoS. The QoS invokes the cache interface in the timer. If overload control is not required, an invalid value is reported. If overload control is required, the disk flushing bandwidth is reported to the QoS.
Overload release condition
(1) Low watermark in the latest three periods;
(2) The current water level is less than 13%.
(3) The difference between the reported bandwidth and the latest statistical bandwidth is 50%.
If the preceding conditions are met, the overload is released.