Print

Print


Curl's detection of low-speed transfers creates a flood of timeout calls which significantly slows large transfers and increases CPU usage. This is fixed in https://github.com/curl/curl/commit/cacdc27f52 which is unfortunately not present on EL7.

This PR checks the curl version and only enables the low-speed detection when libcurl is new enough to have the fix.

Trying this patch on a production EL7 xrootd server which handles TPC requests, there was a significant drop in xrootd CPU usage: from ~100% busy, down to ~5%.

To see if the system is likely being affected, look for the function `Curl_speedcheck` appearing frequently in the gstack output for `xrootd`.
You can view, comment on, or merge this pull request online at:

  https://github.com/xrootd/xrootd/pull/941

-- Commit Summary --

  * [XrdTpc] Only use Curl's low-speed-limit with libcurl v7.38 and later

-- File Changes --

    M src/XrdTpc/XrdTpcState.cc (13)

-- Patch Links --

https://github.com/xrootd/xrootd/pull/941.patch
https://github.com/xrootd/xrootd/pull/941.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/pull/941

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1