Good afternoon. Thank you for this wonderful product. It is exciting.
Setup: Running Neon locally via docker
not the docker-compose
quick-start. I’m supplying config values to Neon and Neon compute node containers that I built locally.
What works:
- supplied my own GCS bucket configuration to
pageserver.toml
- supplied a
[tenant_config]
to.neon/tenants/<tenant_id>/config
withgc_horizon
,gc_period
,pitr_interval
values. - have Pageserver, 3 Safekeeper, Storage Broker and Compute node running well, pushing / pulling to GCP bucket.
What doesn’t work:
- data files keep piling up under
.neon/tenants/<tenant_id>/
. Nothing removes them. Tried settingpitr_interval
,gc_period
, andgc_horizon
low, as noted here - I added a
[disk_usage_based_eviction]
to mypageserver.toml
file as well, but nothing gets resolved. - PageServer keeps filling up and crashing after large inserts.
Needs:
- how to configure GC to work?
- know the difference between GC and the
disk_usage_based_eviction
feature?
Logs:
I see gc_loop
crop-up in the PageServer logs, but it’s as if it never runs. Not sure how to dial in the configuration values (and which ones) to speed this up. I Saw a reference to do_gc
Pageserver API endpoint (in link above) to force-call GC. Not sure how to trigger this endpoint.
1 # .neon/tenants/<tenant_id>/config
2
3
4 [tenant_config]
5 checkpoint_distance = 268435456
6 checkpoint_timeout = "10m"
7 compaction_target_size = 134217728
8 compaction_period = "20s"
9 compaction_threshold = 10
10 gc_horizon = 64
11 gc_period = "30m"
12 image_creation_threshold = 3
13 pitr_interval = "30m"
14 eviction_policy = { kind = "LayerAccessThreshold", period = "20m", threshold = "20m" }
15 min_resident_size_override = 1000
16 evictions_low_residence_duration_metric_threshold = "20m"
17 gc_feedback = true
1 # .neon/pageserver.toml
2 id =1
3 pg_distrib_dir ='/usr/local'
4 http_auth_type ='Trust'
5 pg_auth_type ='Trust'
6 listen_http_addr ='0.0.0.0:9898'
7 listen_pg_addr ='0.0.0.0:6400'
8 broker_endpoint ='http://storage_broker:50051/'
9 disk_usage_based_eviction = { max_usage_pct = 10, min_avail_bytes = 1000, period = "10s"}
10 background_task_maximum_delay = '10s'
11
12 [remote_storage]
13 endpoint='https://storage.googleapis.com'
14 bucket_name='OMITTED'
15 bucket_region='us'
16 prefix_in_bucket='/pageserver/'
17
Thank you for any guidance on this matter!