optimize writes to influxdb
parent
d31105ab9c
commit
0f8a78b8c8
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
title: Optimize writes
|
||||||
|
seotitle: Optimize writes to InfluxDB
|
||||||
|
description: >
|
||||||
|
Optimize performance and system overhead when writing data to InfluxDB using some simple tips.
|
||||||
|
weight: 202
|
||||||
|
menu:
|
||||||
|
v2_0:
|
||||||
|
parent: write-best-practices
|
||||||
|
v2.0/tags: [best practices, write]
|
||||||
|
---
|
||||||
|
|
||||||
|
Optimize performance and system overhead when writing data to InfluxDB using some simple tips.
|
||||||
|
|
||||||
|
_[Telegraf](/v2.0/write-data/use-telegraf/), [InfluxDB scrapers](/v2.0/write-data/scrape-data/),
|
||||||
|
and many [InfluxDB client libraries](/v2.0/reference/client-libraries/) employ these optimizations by default._
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Batch writes
|
||||||
|
Minimize network overhead when writing data to InfluxDB by writing data in batches.
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
The recommend batch size is 5000 lines of line protocol.
|
||||||
|
{{% /note %}}
|
||||||
|
|
||||||
|
## Sort tags by key
|
||||||
|
Sort tags by key before writing data points to InfluxDB.
|
||||||
|
_The sort should match results from the [Go `bytes.Compare` function](http://golang.org/pkg/bytes/#Compare)
|
||||||
|
(lexicographic order)._
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Line protocol example with unsorted tags
|
||||||
|
measurement,tagC=therefore,tagE=am,tagA=i,tagD=i,tagB=think fieldKey=fieldValue 1562020262
|
||||||
|
|
||||||
|
# Optimized line protocol example with tags sorted by key
|
||||||
|
measurement,tagA=i,tagB=think,tagC=therefore,tagD=i,tagE=am fieldKey=fieldValue 1562020262
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use the coarsest time precision possible
|
||||||
|
InfluxDB lets you write data with up to nanosecond precision.
|
||||||
|
If data isn't collected at that precision, there is no need to write data at that precision.
|
||||||
|
Use the coarsest precision possible for timestamps.
|
||||||
|
This can result in significant compression improvements.
|
||||||
|
|
||||||
|
_Specify timestamp precision when [writing to InfluxDB](/v2.0/write-data/#precision)._
|
||||||
|
|
||||||
|
## Synchronize hosts with NTP
|
||||||
|
Use the Network Time Protocol (NTP) to synchronize time between hosts.
|
||||||
|
InfluxDB uses a host's local time in UTC to assign timestamps to data if no
|
||||||
|
timestamp is included in the line protocol.
|
||||||
|
If hosts' clocks aren't synchronized with NTP, the timestamps on data written
|
||||||
|
to InfluxDB can be inaccurate.
|
Loading…
Reference in New Issue