Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Mar 25, 2019

Conversation

jthiltges
Copy link
Contributor

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 curl/curl@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.

Curl's detection of low-speed transfers creates a flood of timeout calls which
significantly slows large transfers and increases CPU usage. Fixed in
curl/curl@cacdc27f52
@bbockelm bbockelm mentioned this pull request Mar 22, 2019
@ffurano ffurano merged commit 51fe860 into xrootd:master Mar 25, 2019
@jthiltges jthiltges deleted the tpc-curl-limit branch June 25, 2019 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants