Benjamin Dugast wrote:
> I'm working on Postgres 9.3.4 for a project.
> 
> 
> We are using Scala, Akka and JDBC to insert data in the database, we have 
> around 25M insert to do
> which are basically lines from 5000 files. We issue a DELETE according to the 
> file (mandatory) and
> then a COPY each 1000 lines of that file.
> 
> DELETE request : DELETE FROM table WHERE field1 = ? AND field2 = ?;
> 
> COPY request : COPY table FROM STDIN WITH CSV
> 
> 
> We have indexes on our database that we can't delete to insert our data.
> 
> 
> When we insert the data there is some kind of freezes on the databases 
> between requests. Freezes occur
> about every 20 seconds.
> 
> 
> Here is a screenshot 
> <http://tof.canardpc.com/view/c42e69c0-d776-4f93-a8a3-8713794a1a07.jpg> from
> yourkit.
> 
> 
> We tried different solutions:
> 
> 
> *     1 table to 5 tables to reduces lock contention
> *     fillfactor on indexes
> *     commit delay
> *     fsync to off (that helped but we can't do this)
> 
> We mainly want to know why this is happening because it slowing the insert 
> too much for us.

This sounds a lot like checkpoint I/O spikes.

Check with the database server log if the freezes coincide with checkpoints.

You can increase checkpoint_segments when you load data to have them occur less 
often.

If you are on Linux and you have a lot of memory, you might hit spikes because 
too
much dirty data are cached; check /proc/sys/vm/dirty_ratio and 
/proc/sys/dirty_background_ratio.

Yours,
Laurenz Albe

-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to