Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jul 2018 00:53:28 +1200
From:      Thomas Munro <munro@ip9.org>
To:        freebsd-hackers@freebsd.org
Subject:   Patching setproctitle() to go faster, for PostgreSQL
Message-ID:  <CADLWmXWCj_WgYfQfzUL_aFLYYqezmbivzF=gKyk%2B6JqPcBvbXQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--00000000000023a918057003afda
Content-Type: text/plain; charset="UTF-8"

Hi FreeBSD hackers,

PostgreSQL's update_process_titles setting, which defaults to on,
slows busy databases down quite noticeably on FreeBSD and so a lot of
people turn it off.  Having that information in ps/top/htop is nice,
so I don't like turning it off.  It was a rainy Sunday here yesterday
so I decided to hack on that.  I wrote an experimental patch,
attached, that essentially reverts to the ancient syscall-free BSD
behaviour (?) on a per-process basis, for processes that are
update-heavy.  That raises some interesting questions about torn
reads, I admit...

I didn't see much difference in "pgbench" on my laptop, but on an AWS
m4.10xlarge (40 vCPU) machine I could easily see a difference.  I
think there is probably a contention effect somewhere that gets worse
with more concurrency.

pgbench -i -s 10 postgres
pgbench -T60 -c 40 -j 40 -S -M prepared postgres

Stock 11.2,   update_process_titles = on:     472873 TPS (default)
Stock 11.2,   update_process_titles = off:    539391 TPS (~13% faster
than default)
Patched 11.2, update_process_titles = on:     519733 TPS (~10% faster
than default)

I'd be grateful for any feedback.

Thanks,

Thomas Munro

--00000000000023a918057003afda
Content-Type: application/octet-stream; 
	name="0001-Speed-up-setproctitle-for-frequent-callers.patch"
Content-Disposition: attachment; 
	filename="0001-Speed-up-setproctitle-for-frequent-callers.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jj48xgmm0

RnJvbSBlZjkzOGY1YWNmYTM4ZDIwZDVkYTYzMGVkYjE4Mzg3YWRkMTE2MDUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPG11bnJvQGlwOS5vcmc+CkRhdGU6IFR1
ZSwgMyBKdWwgMjAxOCAwMDozMDo0OCArMTIwMApTdWJqZWN0OiBbUEFUQ0hdIFNwZWVkIHVwIHNl
dHByb2N0aXRsZSgpIGZvciBmcmVxdWVudCBjYWxsZXJzLgoKU29tZSBhcHBsaWNhdGlvbnMsIG5v
dGFibHkgUG9zdGdyZVNRTCwgd2FudCB0byBjYWxsIHNldHByb2N0aXRsZSgpCnZlcnkgb2Z0ZW4u
ICBJdCdzIHNsb3cuICBQcm92aWRlIGFuIGFsdGVybmF0aXZlIGNoZWFwIHdheSBvZiB1cGRhdGlu
Zwpwcm9jZXNzIHRpdGxlcyB3aXRob3V0IG1ha2luZyBhbnkgc3lzY2FsbHMsIGluc3RlYWQgcmVx
dWlyaW5nIG90aGVyCnByb2Nlc3NlcyAodG9wLCBwcyBldGMpIHRvIGRvIGEgYml0IG1vcmUgd29y
ayB0byByZXRyaWV2ZSB0aGUgZGF0YS4KVGhpcyB1c2VzIGEgcHJlLWV4aXN0aW5nIGNvZGUgcGF0
aCBpbmhlcml0ZWQgZnJvbSBhbmNpZW50IEJTRCwgd2hpY2gKYWx3YXlzIGRpZCBpdCB0aGF0IHdh
eS4gIFN3aXRjaCB0byB0aGUgZmFzdCB1cGRhdGUgc3RyYXRlZ3kgYWZ0ZXIgNQpjYWxscyB0byBz
ZXRwcm9jdGl0bGUoKSBmcm9tIGFueSBnaXZlbiBwcm9jZXNzLgoKVGhvbWFzIE11bnJvCi0tLQog
bGliL2xpYmMvZ2VuL3NldHByb2N0aXRsZS5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLS0t
LS0KIHN5cy9rZXJuL2tlcm5fcHJvYy5jICAgICAgICB8IDE5ICsrKysrKysrKysrKysrLS0tLS0K
IHVzci5iaW4vdG9wL21hY2hpbmUuYyAgICAgICB8ICAxIC0KIDMgZmlsZXMgY2hhbmdlZCwgMzUg
aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvZ2Vu
L3NldHByb2N0aXRsZS5jIGIvbGliL2xpYmMvZ2VuL3NldHByb2N0aXRsZS5jCmluZGV4IGZkODdj
MzUwNzE1Li5mZjJlNTMzYmQ1MyAxMDA2NDQKLS0tIGEvbGliL2xpYmMvZ2VuL3NldHByb2N0aXRs
ZS5jCisrKyBiL2xpYi9saWJjL2dlbi9zZXRwcm9jdGl0bGUuYwpAQCAtNTUsNiArNTUsOCBAQCBz
dHJ1Y3Qgb2xkX3BzX3N0cmluZ3MgewogCiAjZGVmaW5lIFNQVF9CVUZTSVpFIDIwNDgJLyogZnJv
bSBvdGhlciBwYXJ0cyBvZiBzZW5kbWFpbCAqLwogCisjZGVmaW5lIE1BWF9TTE9XX1VQREFURVMg
NQkvKiB0aHJlc2hvbGQgZm9yIHN3aXRjaGluZyB0byBmYXN0IHBhdGggKi8KKwogdm9pZAogc2V0
cHJvY3RpdGxlKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewpAQCAtNjQsNiArNjYsOCBAQCBzZXRw
cm9jdGl0bGUoY29uc3QgY2hhciAqZm10LCAuLi4pCiAJc3RhdGljIGNoYXIgKipvYXJndiwgKmti
dWY7CiAJc3RhdGljIGludCBvYXJnYyA9IC0xOwogCXN0YXRpYyBjaGFyICpuYXJndlsyXSA9IHsg
TlVMTCwgTlVMTCB9OworCXN0YXRpYyBpbnQgZmFzdF91cGRhdGUgPSAwOworCXN0YXRpYyBpbnQg
Y2FsbHMgPSAwOwogCWNoYXIgKipuYXJndnA7CiAJaW50IG5hcmdjOwogCWludCBpOwpAQCAtOTEs
NiArOTUsMTYgQEAgc2V0cHJvY3RpdGxlKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCWlmIChmbXQp
IHsKIAkJYnVmW1NQVF9CVUZTSVpFIC0gMV0gPSAnXDAnOwogCisJCWlmICghZmFzdF91cGRhdGUg
JiYgKytjYWxscyA+PSBNQVhfU0xPV19VUERBVEVTKSB7CisJCQkvKiB0ZWxsIHRoZSBrZXJuZWwg
dG8gc3RhcnQgbG9va2luZyBpbiB1c2VyLXNwYWNlICovCisJCQlvaWRbMF0gPSBDVExfS0VSTjsK
KwkJCW9pZFsxXSA9IEtFUk5fUFJPQzsKKwkJCW9pZFsyXSA9IEtFUk5fUFJPQ19BUkdTOworCQkJ
b2lkWzNdID0gZ2V0cGlkKCk7CisJCQlzeXNjdGwob2lkLCA0LCAwLCAwLCAiIiwgMCk7CisJCQlm
YXN0X3VwZGF0ZSA9IDE7CisJCX0KKwogCQlpZiAoZm10WzBdID09ICctJykgewogCQkJLyogc2tp
cCBwcm9ncmFtIG5hbWUgcHJlZml4ICovCiAJCQlmbXQrKzsKQEAgLTExOSwxMSArMTMzLDEzIEBA
IHNldHByb2N0aXRsZShjb25zdCBjaGFyICpmbXQsIC4uLikKIAl2YV9lbmQoYXApOwogCiAJLyog
U2V0IHRoZSB0aXRsZSBpbnRvIHRoZSBrZXJuZWwgY2FjaGVkIGNvbW1hbmQgbGluZSAqLwotCW9p
ZFswXSA9IENUTF9LRVJOOwotCW9pZFsxXSA9IEtFUk5fUFJPQzsKLQlvaWRbMl0gPSBLRVJOX1BS
T0NfQVJHUzsKLQlvaWRbM10gPSBnZXRwaWQoKTsKLQlzeXNjdGwob2lkLCA0LCAwLCAwLCBrYnVm
LCBzdHJsZW4oa2J1ZikgKyAxKTsKKwlpZiAoIWZhc3RfdXBkYXRlKSB7CisJCW9pZFswXSA9IENU
TF9LRVJOOworCQlvaWRbMV0gPSBLRVJOX1BST0M7CisJCW9pZFsyXSA9IEtFUk5fUFJPQ19BUkdT
OworCQlvaWRbM10gPSBnZXRwaWQoKTsKKwkJc3lzY3RsKG9pZCwgNCwgMCwgMCwga2J1Ziwgc3Ry
bGVuKGtidWYpICsgMSk7CisJfQogCiAJaWYgKHBzX3N0cmluZ3MgPT0gTlVMTCkgewogCQlsZW4g
PSBzaXplb2YodWxfcHNfc3RyaW5ncyk7CmRpZmYgLS1naXQgYS9zeXMva2Vybi9rZXJuX3Byb2Mu
YyBiL3N5cy9rZXJuL2tlcm5fcHJvYy5jCmluZGV4IDExZGZkMmY0NGViLi4wMjgwYTJjNzA2YiAx
MDA2NDQKLS0tIGEvc3lzL2tlcm4va2Vybl9wcm9jLmMKKysrIGIvc3lzL2tlcm4va2Vybl9wcm9j
LmMKQEAgLTE5ODgsMTEgKzE5ODgsMjAgQEAgc3lzY3RsX2tlcm5fcHJvY19hcmdzKFNZU0NUTF9I
QU5ETEVSX0FSR1MpCiAKIAlpZiAocmVxLT5uZXdsZW4gPiBwc19hcmdfY2FjaGVfbGltaXQgLSBz
aXplb2Yoc3RydWN0IHBhcmdzKSkKIAkJcmV0dXJuIChFTk9NRU0pOwotCW5ld3BhID0gcGFyZ3Nf
YWxsb2MocmVxLT5uZXdsZW4pOwotCWVycm9yID0gU1lTQ1RMX0lOKHJlcSwgbmV3cGEtPmFyX2Fy
Z3MsIHJlcS0+bmV3bGVuKTsKLQlpZiAoZXJyb3IgIT0gMCkgewotCQlwYXJnc19mcmVlKG5ld3Bh
KTsKLQkJcmV0dXJuIChlcnJvcik7CisKKwlpZiAocmVxLT5uZXdsZW4gPT0gMCkgeworCQkvKgor
CQkgKiBDbGVhciB0aGUgYXJndW1lbnQgcG9pbnRlciwgc28gdGhhdCB3ZSdsbCBmZXRjaCBhcmd1
bWVudHMKKwkJICogd2l0aCBwcm9jX2dldGFyZ3YoKSB1bnRpbCBmdXJ0aGVyIG5vdGljZS4KKwkJ
ICovCisJCW5ld3BhID0gTlVMTDsKKwl9IGVsc2UgeworCQluZXdwYSA9IHBhcmdzX2FsbG9jKHJl
cS0+bmV3bGVuKTsKKwkJZXJyb3IgPSBTWVNDVExfSU4ocmVxLCBuZXdwYS0+YXJfYXJncywgcmVx
LT5uZXdsZW4pOworCQlpZiAoZXJyb3IgIT0gMCkgeworCQkJcGFyZ3NfZnJlZShuZXdwYSk7CisJ
CQlyZXR1cm4gKGVycm9yKTsKKwkJfQogCX0KIAlQUk9DX0xPQ0socCk7CiAJcGEgPSBwLT5wX2Fy
Z3M7CmRpZmYgLS1naXQgYS91c3IuYmluL3RvcC9tYWNoaW5lLmMgYi91c3IuYmluL3RvcC9tYWNo
aW5lLmMKaW5kZXggYzQ0ZGVjMjY0YTUuLmYwYzdiOGM4NDEwIDEwMDY0NAotLS0gYS91c3IuYmlu
L3RvcC9tYWNoaW5lLmMKKysrIGIvdXNyLmJpbi90b3AvbWFjaGluZS5jCkBAIC05NTAsNyArOTUw
LDYgQEAgZm9ybWF0X25leHRfcHJvY2VzcyhzdHJ1Y3QgaGFuZGxlICogeGhhbmRsZSwgY2hhciAq
KCpnZXRfdXNlcmlkKShpbnQpLCBpbnQgZmxhZ3MKIAkJfQogCX0gZWxzZSB7CiAJCWlmIChwcC0+
a2lfZmxhZyAmIFBfU1lTVEVNIHx8Ci0JCSAgICBwcC0+a2lfYXJncyA9PSBOVUxMIHx8CiAJCSAg
ICAoYXJncyA9IGt2bV9nZXRhcmd2KGtkLCBwcCwgY21kbGVuKSkgPT0gTlVMTCB8fAogCQkgICAg
ISgqYXJncykpIHsKIAkJCWlmIChwcy50aHJlYWQgJiYgcHAtPmtpX2ZsYWcgJiBQX0hBRFRIUkVB
RFMgJiYKLS0gCjIuMTcuMAoK
--00000000000023a918057003afda--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLWmXWCj_WgYfQfzUL_aFLYYqezmbivzF=gKyk%2B6JqPcBvbXQ>