After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733217 - AFP backend is slow due to Nagle's algorithm + delayed ACKs
AFP backend is slow due to Nagle's algorithm + delayed ACKs
Status: RESOLVED FIXED
Product: gvfs
Classification: Core
Component: afp backend
1.21.x
Other Linux
: Normal normal
: ---
Assigned To: gvfs-maint
gvfs-maint
Depends on:
Blocks:
 
 
Reported: 2014-07-15 16:20 UTC by Ross Lagerwall
Modified: 2014-07-15 21:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
afp: Disable Nagle's algorithm (2.38 KB, patch)
2014-07-15 16:45 UTC, Ross Lagerwall
committed Details | Review

Description Ross Lagerwall 2014-07-15 16:20:01 UTC
The AFP backend is very slow; e.g. duplicating 10000 files in Nautilus takes tens of minutes. I don't think it should be this slow.
Comment 1 Ross Lagerwall 2014-07-15 16:45:44 UTC
Created attachment 280745 [details] [review]
afp: Disable Nagle's algorithm

Disable Nagle's algorithm for the connection to the server to improve
performance.

Due to the backend doing a write-write-read sequence, the combination of
Nagle's algorithm and TCP delayed ACKs means that the second write is
delayed until the server's delayed ACK timer times out (40ms on Linux).
This results in each request-response taking far too long causing poor
performance.

This patch reduces the time it takes to duplicate a directory of 10000
small files from 21 minutes to 11 seconds.
Comment 2 Ross Lagerwall 2014-07-15 16:47:25 UTC
The attached patch fixes the slowness issues I was seeing.
Comment 3 Carl-Anton Ingmarsson 2014-07-15 19:17:37 UTC
LGTM. Please Commit.
Comment 4 Ross Lagerwall 2014-07-15 21:13:47 UTC
Comment on attachment 280745 [details] [review]
afp: Disable Nagle's algorithm

Pushed to master as 41778e950db34e52a69e382896ede4c0216ef8c6. Thanks for the review!