[
https://issues.apache.org/jira/browse/IGNITE-16582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-16582:
---------------------------------------
Description:
There is a log:
{{Throttling is applied to page modifications [}}
{{percentOfPartTime=0.59, }}
{{markDirty=7424 pages/sec, }}
{{checkpointWrite=6268 pages/sec, }}
{{estIdealMarkDirty=0 pages/sec, }}
{{curDirty=0.00, }}
{{maxDirty=0.24, }}
{{avgParkTime=79770 ns, }}
{{pages: (total=67085, evicted=0, written=40916, synced=0, cpBufUsed=3,
cpBufTotal=518215)]}}
Here, it can be seen that, although there are plenty of non-dirty pages,
throttling is applied. This happens because our speed-based throttling has 2
algorithms for protecting non-dirty pages from exhaustion:
# A more complex one that computes max allowable dirty ratio and ideal marking
speed and throttles when both dirty ratio and current marking speed surpass
these values
# A simpler one that throttles if the current marking speed is higher than the
average checkpointing speed
In the shown example the first algorithm does not throttle, but the second one
does.
It looks like the throttling is enabled too early.
One way to solve this problem is to just disable the second algorithm as the
first seems to be more adequate (but this needs careful consideration of all
possible cases).
Another way is to consider averaged marking speed instead of (or in addition
to) the current marking speed when deciding whether to throttle or not.
was:
There is a log:
Throttling is applied to page modifications [
percentOfPartTime=0.59,
markDirty=7424 pages/sec,
checkpointWrite=6268 pages/sec,
estIdealMarkDirty=0 pages/sec,
curDirty=0.00,
maxDirty=0.24,
avgParkTime=79770 ns,
pages: (total=67085, evicted=0, written=40916, synced=0, cpBufUsed=3,
cpBufTotal=518215)]
Here, it can be seen that, although there are plenty of non-dirty pages,
throttling is applied. This happens because our speed-based throttling has 2
algorithms for protecting non-dirty pages from exhaustion:
# A more complex one that computes max allowable dirty ratio and ideal marking
speed and throttles when both dirty ratio and current marking speed surpass
these values
# A simpler one that throttles if the current marking speed is higher than the
average checkpointing speed
In the shown example the first algorithm does not throttle, but the second one
does.
It looks like the throttling is enabled too early.
One way to solve this problem is to just disable the second algorithm as the
first seems to be more adequate (but this needs careful consideration of all
possible cases).
Another way is to consider averaged marking speed instead of (or in addition
to) the current marking speed when deciding whether to throttle or not.
> Improve behavior of speed-based throttling when dirty pages ratio is low
> ------------------------------------------------------------------------
>
> Key: IGNITE-16582
> URL: https://issues.apache.org/jira/browse/IGNITE-16582
> Project: Ignite
> Issue Type: Improvement
> Components: persistence
> Affects Versions: 2.12
> Reporter: Roman Puchkovskiy
> Assignee: Roman Puchkovskiy
> Priority: Major
> Fix For: 2.13
>
>
> There is a log:
> {{Throttling is applied to page modifications [}}
> {{percentOfPartTime=0.59, }}
> {{markDirty=7424 pages/sec, }}
> {{checkpointWrite=6268 pages/sec, }}
> {{estIdealMarkDirty=0 pages/sec, }}
> {{curDirty=0.00, }}
> {{maxDirty=0.24, }}
> {{avgParkTime=79770 ns, }}
> {{pages: (total=67085, evicted=0, written=40916, synced=0, cpBufUsed=3,
> cpBufTotal=518215)]}}
> Here, it can be seen that, although there are plenty of non-dirty pages,
> throttling is applied. This happens because our speed-based throttling has 2
> algorithms for protecting non-dirty pages from exhaustion:
> # A more complex one that computes max allowable dirty ratio and ideal
> marking speed and throttles when both dirty ratio and current marking speed
> surpass these values
> # A simpler one that throttles if the current marking speed is higher than
> the average checkpointing speed
> In the shown example the first algorithm does not throttle, but the second
> one does.
> It looks like the throttling is enabled too early.
> One way to solve this problem is to just disable the second algorithm as the
> first seems to be more adequate (but this needs careful consideration of all
> possible cases).
> Another way is to consider averaged marking speed instead of (or in addition
> to) the current marking speed when deciding whether to throttle or not.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)