On 2021-Jul-20, Andres Freund wrote:
> I think what's happening is that the first recvfrom() actually gets all 7
> connection results. The server doesn't have any queries to process at that
> point. But we ask the kernel whether there is new network input over and over
> again, despite having results to process!
Hmm, yeah, that seems a missed opportunity.
> with-isbusy:
> ...
> tps = 3990.424742 (without initial connection time)
> ...
> 1,013.71 msec task-clock # 0.202 CPUs utilized
> 80,203 raw_syscalls:sys_enter # 79.119 K/sec
> 19,947 context-switches # 19.677 K/sec
> 2,943,676,361 cycles:u # 2.904 GHz
> 346,607,769 cycles:k # 0.342 GHz
> 8,464,188,379 instructions:u # 2.88 insn per cycle
> 226,665,530 instructions:k # 0.65 insn per cycle
This is quite compelling.
If you don't mind I can get this pushed soon in the next couple of days
-- or do you want to do it yourself?
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"La espina, desde que nace, ya pincha" (Proverbio africano)