You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is from issue kubernetes/kubernetes#61999. One of the issues with using a blocking claimToken in https://github.com/google/cadvisor/blob/master/fs/fs.go#L62 is that there can potentially be a backlog of du and find requests. If the claimToken is made non-blocking and returns an error if no token is available it will just defer the du and find requests. The advantage of using the non-blocking token is that there will never be a backlog of du and find requests queued up. So, although the disk and inode usage collection is a valuable metric we don't need to compromise kubelet health for it.
how does a queue of du and find requests affect the kubelet's health? cAdvisor doesn't do housekeeping in parallel, so you can have at most one queued du or find call for each container.
I have typically seen the high wait times in kubernetes/kubernetes#61999 with a large number of kubelet threads (>1000) with most of them stuck on a futex_wait_queue_me system call.
This is from issue kubernetes/kubernetes#61999. One of the issues with using a blocking claimToken in https://github.com/google/cadvisor/blob/master/fs/fs.go#L62 is that there can potentially be a backlog of du and find requests. If the claimToken is made non-blocking and returns an error if no token is available it will just defer the du and find requests. The advantage of using the non-blocking token is that there will never be a backlog of du and find requests queued up. So, although the disk and inode usage collection is a valuable metric we don't need to compromise kubelet health for it.
The change seems simple enough in fs/fs.go.
The text was updated successfully, but these errors were encountered: