[clug] Tuning Postgres for large amounts of incoming data
Stephen Hocking <[email protected]> Wed, 1 Feb 2017 13:03:12 +1100
| Newsgroups | gmane.org.user-groups.clug |
|---|---|
| Message-ID | <CA+xzKjAQyMeL1k4hs18=_f4_y9Vt9y5YRgzXX0gngQYOJJQxTQ@mail.gmail.com> |
Hi all, As some of you know, I've created a setup with a few raspberry pis around the state that record plane positions, this is then logged in a Postgres DB on a small VM, with about 1.5-2 million records being logged each day. I've written some code that pulls down the ADS-B Exchange's daily archive and logs them into my own DB. This is about 120M records per day, being positions of aircraft all over the world. I'm doing this on a stand-alone machine, a 6 core AMD box with 32GB of memory. Doing it with a single threaded steam takes about 2.5 days to log a full day's data, keeping one core busy, with 60% Postgres & 40% my code Wait on I/O is about 2%. Splitting the data up into 6 separate streams (one for each core) take about 14.5 hours to log a day's data. A days' data seems to take up about 30GB in the DB. There's about 20% wait I/O and 54% idle time, which leads me to suspect I could tune various Postgres parameters. Has anyone else had experience with this? Googling turns up a bunch of interesting pages, but some of the tweaks mentioned therein seem more appropriate for workloads with intensive read queries, which are, as yet, not on my horizon. -- "I and the public know what all schoolchildren learn Those to whom evil is done Do evil in return" W.H. Auden, "September 1, 1939" -- linux mailing list linux-w/[email protected] https://lists.samba.org/mailman/listinfo/linux