Обсуждение: Why the size (PQ_BUFFER_SIZE) of backend send buffers is 8192 ?

Поиск
Список
Период
Сортировка

Why the size (PQ_BUFFER_SIZE) of backend send buffers is 8192 ?

От
xbzhang
Дата:
Why the size (PQ_BUFFER_SIZE) of backend send buffers  is 8192 ?  Can i set it to other value ?
If i extend or decrease it ,   can it affect the performance of sending message?
 

张晓博   研发二部

北京人大金仓信息技术股份有限公司

地址:北京市海淀区上地西路八号院上地科技大厦4号楼501

邮编:100085

电话:(010) 5885 1118 - 8450

手机:15311394463

邮箱:xbzhang@kingbase.com.cn

Re: Why the size (PQ_BUFFER_SIZE) of backend send buffers is 8192 ?

От
Giuseppe Broccolo
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Il 03/01/2014 09:47, xbzhang ha scritto:
> Why the size (PQ_BUFFER_SIZE) of backend send buffers  is 8192 ?
> Can i set it to other value ?

In principle, it is just an arbitrary amount by which to increase the
I/O buffer size. Of course it has to take into account the buffering
behaviour of the system kernel and TCP stack.

> If i extend or decrease it ,   can it affect the performance of
> sending message?

PQ_BUFFER_SIZE handle the low-level details of communication between
frontend and backend. I would not decrease its value, there is no
reason to expect advantage splitting 8k buffers (i.e. a page content
size) in my opinion.

Giuseppe.
- --
Giuseppe Broccolo - 2ndQuadrant Italy
PostgreSQL Training, Services and Support
giuseppe.broccolo@2ndQuadrant.it | www.2ndQuadrant.it
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJSxoloAAoJELtGpyN/y3jeaF4P/04JXkTNj3uAd3gmff5y74g2
fOo5xNJG4ZhQ4U3Kp8IumN3UIKAq9bP39ufPL2rQZTDzeoYrhF+tn4gtEFYHKobW
JMpehihpmgC0/vc78FEQu0hZrMH08A8xdY5L+8heoGkOqZIQwMjsmxwcdTLJNdyO
leD933NiiDinXESwXEy3x0LgqaBv11ZeoB6aJgz5jxz95CkpmdSQQwuROYP3nTxy
PnjcjX3rzrC5jvUQS9c5gvOHstwyK/aOWjCI14dygEM6WuwU/jjJoGnSb5SyHUcS
HfNKsjpFnjlaYTYHeQq1mYz3br8JhOZ/akK3FHkuvHKAwhi8wAymAXANm7RUGHZr
nsiv4MyTMIpI6ynA12c7LbIYwlbgoVE+u/dNoyZySNOJv4kkSV5VNMmbwmRLO2GL
ebde35zTn1LjE8LTun/PORiLkG61Xc6+NzjD0PR3yqKklQXPTP/4xoYIxjtg2lp3
dd2ImLhoTE/ruUZpjue75M4XW97jaXKEG2JmdOsOoxJM9UwfXnB9/9DVHJCo5DZk
e4B1YM8xn88MTwoWldC2z4SG3Pg91EU8569nkj1eaudx3LTUm9yNGVCr6tK4Lfd2
SxzEpclytxcFsIO7vQrJK374K/3nYQWb/BmYvIn+iarhY/DDb7TeOjuHUHDualNb
QBoamS6hNuLdNe+il5dM
=2qp+
-----END PGP SIGNATURE-----


Re: Why the size (PQ_BUFFER_SIZE) of backend send buffers is 8192 ?

От
Tom Lane
Дата:
xbzhang <xbzhang@kingbase.com.cn> writes:
> Why the size (PQ_BUFFER_SIZE) of backend send buffers  is 8192 ?

Traditionally, at least, that was the size of pipe buffers in Unix
machines, so in principle this is the most optimal chunk size for
sending data across a Unix socket.  I have no idea though if that's
still true in kernels in common use today.  For TCP communication
it might be marginally better to find out the MTU size and use that;
but it's unclear that it's worth the trouble, or indeed that we can
know the end-to-end MTU size with any reliability.

            regards, tom lane


Re: Why the size (PQ_BUFFER_SIZE) of backend send buffers is 8192 ?

От
Andrew Sullivan
Дата:
On Fri, Jan 03, 2014 at 10:00:42AM -0500, Tom Lane wrote:
> know the end-to-end MTU size with any reliability.

Well, you could try PMTU discovery, though I agree that it's not
great.  It also seems pretty low-level for something like the DBMS to
be doing.

A

--
Andrew Sullivan
ajs@crankycanuck.ca