Re: Performance degradation on concurrent COPY into a single relation in PG16. - Mailing list pgsql-hackers

From Jakub Wartak
Subject Re: Performance degradation on concurrent COPY into a single relation in PG16.
Date
Msg-id CAKZiRmw5VhfcRuMjCk630E5ai6OpwXwb8TNDRdopbHOeyLhs6w@mail.gmail.com
Whole thread Raw
In response to Re: Performance degradation on concurrent COPY into a single relation in PG16.  (Masahiko Sawada <sawada.mshk@gmail.com>)
Responses Re: Performance degradation on concurrent COPY into a single relation in PG16.
List 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@rockyora ~]# time ./test test.1 1
total   200000
fallocate       200000
filewrite       0

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

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

real    0m25.927s
user    0m0.091s
sys     0m3.621s
[root@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.

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [PATCH] Remove unnecessary unbind in LDAP search+bind mode
Next
From: Daniel Gustafsson
Date:
Subject: Re: sslinfo extension - add notbefore and notafter timestamps