Subversion checkout performance to NFS share is very slow
Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Subversion checkout performance to NFS share is very slow
Dear experts,
Hopefully one (or more) of you is going to be able to help me solve an issue with the performance of subversion. I'm faced with the challenge of making operations like "svn co" perform fast.
For example if I do a checkout to local disk, total execution time is around 17 seconds. Checking out the same repository to an NFS share is about 450 seconds: (Data calculated using strace analyzer http://clusterbuffer.wikifoundry.com...ext+Generation) Local
Code:
----------------
-- Time Stats --
----------------
Elapsed Time for run: 63.523103 (secs)
Total IO Time: 17.695617 (secs)
Total IO Time Counter: 1115045
Percentage of Total Time = 27.856978%
Remote
Code:
----------------
-- Time Stats --
----------------
Elapsed Time for run: 442.366395 (secs)
Total IO Time: 368.821888 (secs)
Total IO Time Counter: 1114166
Percentage of Total Time = 83.374753%
I did play around with various NFS options like rsize, wsize, noatime, noacl and the server side no_subtree_ckeck, and tried using nfs caching (using cachefilesd) but all to no avail. All times with NFS remain well above 400 seconds.
Looking in the strace output I find loads and loads of activity on wc.db-journal so I expect the actual culprit is SQLite, but that's just a guess on my side.
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,154
Rep:
checking out to a mounted share is always going to be slower than a local disk because you have to download the file which takes time and network acces then the copied file is sent over the network to the nfs share which takes time and network access, there is a similar thread to this but using samba, the only way to get local speeds when downloading to a share ist ssh into the machine that has the drive connected loccaly and do the download from there, that way the file access is all local, much faster
checking out to a mounted share is always going to be slower than a local disk because you have to download the file which takes time and network acces then the copied file is sent over the network to the nfs share which takes time and network access, there is a similar thread to this but using samba, the only way to get local speeds when downloading to a share ist ssh into the machine that has the drive connected loccaly and do the download from there, that way the file access is all local, much faster
I accecpt the fact that checking out to NFS is slower then doing a local checkout. However, the difference here is way too big for me here. Besides, if I copy the locally checked out version to the NFS share, that takes just a few secs.
Also the machine that I do the SVN checkout on, is actually a VM, that has it's 'local' disk on an NFS share. So, even if we're doing the checkout to local disk, we are in fact still checking out to NFS. It's just that the kernel handles it as if it were a locally attached disk. So it must be something in the way NFS works.
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,154
Rep:
Quote:
Originally Posted by lpwevers
... Also the machine that I do the SVN checkout on, is actually a VM, that has it's 'local' disk on an NFS share. So, even if we're doing ...
I think there is your problem a vm is never going to be as fast as the real machine it is being hosted on, not by a long shot, it's very little to do with nfs.
I think there is your problem a vm is never going to be as fast as the real machine it is being hosted on, not by a long shot, it's very little to do with nfs.
Well, I don't agree with you in this case. If I do the checkout on this VM and let it extract to local storage (which in fact is NFS) then it takes about 63 seconds to complete the run. Then, on the same VM, I do the same checkout but now to an NFS share, it takes around 442 seconds. So there must be something in the way NFS is handled.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.