DS writes to the socket using a callback function (openldap_write_function). This function tests (poll) the ability to write before sending pdu. This is useless as there is already a loop that taking care of retry/partial write. This adds an overhead of 'pool' syscall. It improves througput up to 5%.
perf trace -t <worker-tid> -s (taken on top of #51262: nagle off) With poll+sendto ns-slapd (93047), 540445 events, 100.0% syscall calls total min avg max stddev (msec) (msec) (msec) (msec) (%) --------------- -------- --------- --------- --------- --------- ------ futex 103768 524.042 0.001 0.005 2.971 0.67% poll 36964 154.968 0.001 0.004 0.044 0.14% sendto 36941 140.178 0.001 0.004 0.025 0.20% write 36927 135.035 0.002 0.004 0.026 0.16% recvfrom 18495 76.359 0.002 0.004 0.027 0.17% With sendto ns-slapd (117421), 319573 events, 100.0% syscall calls total min avg max stddev (msec) (msec) (msec) (msec) (%) --------------- -------- --------- --------- --------- --------- ------ futex 83704 1021.638 0.000 0.012 100.113 23.99% sendto 30268 245.164 0.002 0.008 0.041 0.22% write 30301 123.068 0.002 0.004 0.033 0.23% recvfrom 15222 65.530 0.002 0.004 0.034 0.28% poll 40 1.146 0.003 0.029 0.098 12.61%
all versions
perf trace -t <worker-tid> -s ==> few poll
almost same number of poll than sendto
very low number of poll
Are we in control of that poll function? Or is this something inside openldap write we need to change?
Metadata Update from @firstyear: - Custom field origin adjusted to None - Custom field reviewstatus adjusted to None
Metadata Update from @spichugi: - Issue close_status updated to: wontfix - Issue status updated to: Closed (was: Open)
Metadata Update from @spichugi: - Issue status updated to: Open (was: Closed)
Metadata Update from @mreynolds: - Issue priority set to: normal - Issue set to the milestone: 1.4.4
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/4316
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Login to comment on this ticket.