Re: Performance degradation on concurrent COPY into a single relation in PG16.

From: Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>
To: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Cc: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Performance degradation on concurrent COPY into a single relation in PG16.
Date: 2023-07-03 09:53:56
Message-ID: CAKZiRmw5VhfcRuMjCk630E5ai6OpwXwb8TNDRdopbHOeyLhs6w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Masahiko,

Out of curiosity I've tried and it is reproducible as you have stated : XFS
@ 4.18.0-425.10.1.el8_7.x86_64:

[root(at)rockyora ~]# time ./test test.1 1
total 200000
fallocate 200000
filewrite 0

real 0m5.868s
user 0m0.035s
sys 0m5.716s
[root(at)rockyora ~]# time ./test test.2 2
total 200000
fallocate 100000
filewrite 100000

real 0m25.858s
user 0m0.108s
sys 0m3.596s
[root(at)rockyora ~]# time ./test test.3 2
total 200000
fallocate 100000
filewrite 100000

real 0m25.927s
user 0m0.091s
sys 0m3.621s
[root(at)rockyora ~]# time ./test test.4 1
total 200000
fallocate 200000
filewrite 0

real 0m3.044s
user 0m0.043s
sys 0m2.934s

According to iostat and blktrace -d /dev/sda -o - | blkparse -i - output ,
the XFS issues sync writes while ext4 does not, xfs looks like constant
loop of sync writes (D) by kworker/2:1H-kblockd:
[..]
8,0 2 34172 24.115364875 312 D WS 44624928 + 16
[kworker/2:1H]
8,0 2 34173 24.115482679 0 C WS 44624928 + 16 [0]
8,0 2 34174 24.115548251 6501 A WS 42525760 + 16 <- (253,0)
34225216
8,0 2 34175 24.115548660 6501 A WS 44624960 + 16 <- (8,2)
42525760
8,0 2 34176 24.115549111 6501 Q WS 44624960 + 16 [test]
8,0 2 34177 24.115551351 6501 G WS 44624960 + 16 [test]
8,0 2 34178 24.115552111 6501 I WS 44624960 + 16 [test]
8,0 2 34179 24.115559713 312 D WS 44624960 + 16
[kworker/2:1H]
8,0 2 34180 24.115677217 0 C WS 44624960 + 16 [0]
8,0 2 34181 24.115743150 6501 A WS 42525792 + 16 <- (253,0)
34225248
8,0 2 34182 24.115743502 6501 A WS 44624992 + 16 <- (8,2)
42525792
8,0 2 34183 24.115743949 6501 Q WS 44624992 + 16 [test]
8,0 2 34184 24.115746175 6501 G WS 44624992 + 16 [test]
8,0 2 34185 24.115746918 6501 I WS 44624992 + 16 [test]
8,0 2 34186 24.115754492 312 D WS 44624992 + 16
[kworker/2:1H]

So it looks like you are onto something.

Regards,
-J.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniel Gustafsson 2023-07-03 09:56:35 Re: sslinfo extension - add notbefore and notafter timestamps
Previous Message Peter Eisentraut 2023-07-03 09:53:03 Re: [PATCH] Remove unnecessary unbind in LDAP search+bind mode