remote-write: raise default samples per send to 2,000

Larger messages cost less, because the per-message overheads at sender
and receiver are spread over more samples.

Example: scraping 1.5 million series every 15 seconds will send 50
messages per second.

Previous default was 500.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
Bryan Boreham 2023-03-31 08:47:06 +00:00
parent f55ab22179
commit 2fc2e233a6
1 changed files with 3 additions and 3 deletions

View File

@ -174,10 +174,10 @@ var (
// DefaultQueueConfig is the default remote queue configuration. // DefaultQueueConfig is the default remote queue configuration.
DefaultQueueConfig = QueueConfig{ DefaultQueueConfig = QueueConfig{
// With a maximum of 200 shards, assuming an average of 100ms remote write // With a maximum of 200 shards, assuming an average of 100ms remote write
// time and 500 samples per batch, we will be able to push 1M samples/s. // time and 2000 samples per batch, we will be able to push 4M samples/s.
MaxShards: 200, MaxShards: 200,
MinShards: 1, MinShards: 1,
MaxSamplesPerSend: 500, MaxSamplesPerSend: 2000,
// Each shard will have a max of 2500 samples pending in its channel, plus the pending // Each shard will have a max of 2500 samples pending in its channel, plus the pending
// samples that have been enqueued. Theoretically we should only ever have about 3000 samples // samples that have been enqueued. Theoretically we should only ever have about 3000 samples
@ -194,7 +194,7 @@ var (
DefaultMetadataConfig = MetadataConfig{ DefaultMetadataConfig = MetadataConfig{
Send: true, Send: true,
SendInterval: model.Duration(1 * time.Minute), SendInterval: model.Duration(1 * time.Minute),
MaxSamplesPerSend: 500, MaxSamplesPerSend: 2000,
} }
// DefaultRemoteReadConfig is the default remote read configuration. // DefaultRemoteReadConfig is the default remote read configuration.