Commit Graph
30 Commits
Author SHA1 Message Date
Kirill A. Korinsky 5c15bf406d Prevent GC from schedule itself with 0 period.
On startup `gcTimeSum` might work fast and return `0`, so on this case
the algorithm turns in infinity loop which simple consume CPU on timer
which fires without any interval.

Use `5ms` as fallback to have interval `245ms` for that case.

Closes: https://github.com/containerd/containerd/issues/5089

Signed-off-by: Kirill A. Korinsky <kirill@korins.ky>
2024-04-22 17:36:25 +02:00
Kirtana Ashok 3f75af7bf2 Move certain debug logs to trace logs
Signed-off-by: Kirtana Ashok <kiashok@microsoft.com>
(cherry picked from commit f261969507)
2024-02-05 15:57:57 -08:00
Paco Xu 012d68ff90 add gc scheduler metrics: collection count
Signed-off-by: Paco Xu <paco.xu@daocloud.io>
2022-06-07 10:33:47 +08:00
Maksym Pavlenko 871b6b6a9f Use testify
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-04-01 18:17:58 -07:00
Kazuyoshi Kato f048a25938 docs: add doc-comments on GC-related methods
Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-01-24 14:26:14 -08:00
haoyunandzounengren bbe46b8c43 feat: replace github.com/pkg/errors to errors
Signed-off-by: haoyun <yun.hao@daocloud.io>
Co-authored-by: zounengren <zouyee1989@gmail.com>
2022-01-07 10:27:03 +08:00
Sebastiaan van Stijn f2edc6f164 vendor: update gotest.tools v3.0.2
full diff: https://github.com/gotestyourself/gotest.tools/compare/v2.3.0...v3.0.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-28 17:47:20 +01:00
Shengjing Zhu e859b8a92b gc: increase sleep time in test
Fix some flaky tests.

Signed-off-by: Shengjing Zhu <zhsj@debian.org>
2020-01-15 18:28:11 +08:00
Hu Shuai 52e477f947 Fix outdated comments
Signed-off-by: Hu Shuai <hus.fnst@cn.fujitsu.com>
2020-01-07 16:30:44 +08:00
Derek McGowan dd0a45dfe0 Add flat GC label for leases
Provide a flag which configures a lease to only hold
reference to its given references and ignore label references
during garbage collection rooted from the lease.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2019-07-18 11:16:46 -07:00
Vincent Demeester 832b05ae67 Update tests to use gotest.tools angel
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-06-08 21:02:01 +02:00
Michael Wan 7fd6d5e2be fix words misspell
Signed-off-by: Michael Wan <zirenwan@gmail.com>
2018-04-23 00:09:42 -04:00
Yanqiang Miao d465f858a0 Fixes a default config bug of gc scheduler
Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
2018-03-20 19:29:40 +08:00
Kunal Kushwaha b12c3215a0 Licence header added
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2018-02-19 10:32:26 +09:00
Daniel Nephin ef48a0268e Migrate to gotestyourself/assert
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2018-02-12 12:26:26 -05:00
Daniel Nephin 06edd193ef Small refactor of gc/scheduler to remove import of metadata
Replace metadata.GCStats with an interface for exposing elapsed time

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2018-01-03 14:36:11 -05:00
Christy Perez 1607a9e0ca check for threshold, not range
This test seems to fall apart on a loaded system. In actuality it
doesn't seem to be testing for a threshold, but a "sane" range.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2017-12-12 15:52:11 -06:00
Daniel Nephin a05e5fd77a restore deferred cleanup in rootfs.init
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2017-11-28 13:14:39 -05:00
Stephen Day 372cdfac3b Merge pull request #1638 from dmcgowan/gc-policy
gc: add policy plugin
2017-11-27 18:20:10 -08:00
yanxuean 81307793b7 some typo
Signed-off-by: yanxuean <yan.xuean@zte.com.cn>
2017-11-22 11:48:09 +08:00
Derek McGowan bae47820d7 Document defaults
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-11-21 16:12:10 -08:00
Daniel Nephin f74862a0dd Add structcheck, unused, and varcheck linters.
Warn on unused and dead code

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2017-11-21 11:14:37 -05:00
Derek McGowan 374f04d0e9 Update gc policy configuration to use time duration
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-11-20 17:08:35 -08:00
Derek McGowan 00596f400e Add gc policy plugin
Add garbage collection as a background process and policy
configuration for configuring when to run garbage collection.
By default garbage collection will run when deletion occurs
and no more than 20ms out of every second.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-11-20 16:57:39 -08:00
Michael Crosby e74c423f78 Fix races with concurrent GC
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-10-27 14:47:23 -04:00
Michael Crosby b6e0c4f321 Fix go lint errors
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-10-25 15:26:44 -04:00
Derek McGowan 17471d5592 Metadata garbage collection
Marks and sweeps unreferenced objects.
Add snapshot cleanup to metadata.
Add content garbage collection

Add dirty flags for snapshotters and content store which
are set on deletion and used during the next garbage collection.
Cleanup content store backend when content metadata is removed.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-10-11 10:42:47 -07:00
Aaron.L.Xu 08bcbddb32 fix typo I found in this repo
Signed-off-by: Aaron.L.Xu <likexu@harmonycloud.cn>
2017-01-20 01:18:26 +08:00
Stephen J Day b52cf8b440 gc: remove erroneous file
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-12 21:09:40 -08:00
Stephen J Day b542cc19ad gc: add toy tri-color GC implementation
As a minimum, we would like to maintain generic garbage collection of
containerd resources. This includes images, bundles, containers and
arbitrary content.

The included implementation is just a textbook toy that we can use to
inform the requirements of gc. It implements a simple, stack-based
tricolor algorithm. Nothing special.

Mostly, this is to ensure we think about garbage collection from the
start, rather than as an afterthought or follow on feature.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-12-06 16:20:40 -08:00