| From: | Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr> | 
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> | 
| Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, Mithun Cy <mithun(dot)cy(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> | 
| Subject: | Re: Perf Benchmarking and regression. | 
| Date: | 2016-05-12 19:10:12 | 
| Message-ID: | alpine.DEB.2.10.1605122047050.32634@sto | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
>> I'm getting increasingly unhappy about the checkpoint flush control.
>> I saw major regressions on my parallel COPY test, too:
>
> Yes, I'm concerned too.
A few thoughts:
  - focussing on raw tps is not a good idea, because it may be a lot of tps
    followed by a sync panic, with an unresponsive database. I wish the
    performance reports would include some indication of the distribution
    (eg min/q1/median/d3/max tps per second seen, standard deviation), not
    just the final "tps" figure.
  - checkpoint flush control (checkpoint_flush_after) should mostly always
    beneficial because it flushes sorted data. I would be surprised
    to see significant regressions with this on. A lot of tests showed
    maybe improved tps, but mostly greatly improved performance stability,
    where a database unresponsive 60% of the time (60% of seconds in the
    the tps show very low or zero tps) and then becomes always responsive.
  - other flush controls ({backend,bgwriter}_flush_after) may just increase
    random writes, so are more risky in nature because the data is not
    sorted, and it may or may not be a good idea depending on detailed
    conditions. A "parallel copy" would be just such a special IO load
    which degrade performance under these settings.
    Maybe these two should be disabled by default because they lead to
    possibly surprising regressions?
  - for any particular load, the admin can decide to disable these if
    they think it is better not to flush. Also, as suggested by Andres,
    with 128 parallel queries the default value may not be appropriate
    at all.
-- 
Fabien.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2016-05-12 19:15:41 | Re: alter table alter column ... (larger type) ... when there are dependent views | 
| Previous Message | Tom Lane | 2016-05-12 19:02:34 | Re: Does Type Have = Operator? |