#51263 performance search rate: useless poll on network send callback
Closed: wontfix 3 years ago by spichugi. Opened 3 years ago by tbordaz.

Issue Description

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%

Package Version and Platform

all versions

Steps to reproduce

perf trace -t <worker-tid> -s ==> few poll

Actual results

almost same number of poll than sendto

Expected results

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

3 years ago

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix
- Issue status updated to: Closed (was: Open)

3 years ago

Metadata Update from @spichugi:
- Issue status updated to: Open (was: Closed)

3 years ago

Metadata Update from @mreynolds:
- Issue priority set to: normal
- Issue set to the milestone: 1.4.4

3 years ago

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.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix
- Issue status updated to: Closed (was: Open)

3 years ago

Login to comment on this ticket.

Metadata