SVN/Apache - Log full transaction I/O across clients.
From: Terry Dooher <Terry.Dooher_at_naturalmotion.com>
Date: Thu, 1 Oct 2015 10:57:16 +0000
I've recently configured svn usage logs with:
LogFormat "%h %t %u (%{SVN-REPOS-NAME}e %{SVN-ACTION}e) %s (%I/%O in %Ts) %k \"%{User-Agent}i\"" svn
mod_logio is enabled, so I'm getting values written to each of the above fields, but when testing with a full checkout of a ~420Mb repo (excluding pristine), I get variable results depending on the client. Sometimes the log entry appears within 4 seconds and reports ~1MB:
192.168.1.2 [01/Oct/2015:11:42:50 +0100] user (svn get-inherited-props /trunk r1084) 200 (543/292 in 0s) 4 "SVN/1.8.13 (x64-microsoft-windows) serf/1.3.8"
Sometimes the log only reports the checkout, but with the correct size:
192.168.1.2 [01/Oct/2015:11:43:55 +0100] user (svn checkout-or-export /trunk r1084) 200 (729/665066747 in 171s) 3 "SVN/1.7.20 neon/0.29.6"
The exact %I, %O and %T will vary a little with each test, but the log entry appears after the first ~5s/~10MB of a checkout that takes 3 minutes. The difference between the above two is that the first checkout is via command-line SVn (part of Tortoise), using Serf and the latter is via the OSX developer tools svn command line (Currently 1.7.20 and built against Neon).
I've disabled compression both at SVNCompressionLevel and disabling mod_deflate. (The data sizes logged were much smaller previously, but the issue was still there).
Is there a way I can ensure the log is only written after the full request has been serviced? The data over time will be really useful in gauging usage over time.
Environment:
Config:
Common repo config (Path and AuthName set per Location)
Order allow,deny
# Common SVN.
# Misc:
Thanks,
Terry.
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.