We’re having an issue where copying files to a custom installation directory is very slow. Often times over 30 minutes for a 400 MB deployment.
The deployment from Octopus to the Tentacle is fairly quick (Around 4 minutes), however the “Copy files to C:\wwwroot\application\1.0.0.0” step takes forever.
Manually copying the files from ‘C:\Octopus\Applications\Application\1.0.0.0’ to ‘C:\wwwroot\application\1.0.0.0’ happens within a few minutes also, so it doesn’t appear to be an I/O issue.
14:01:53 Verbose | Looking for any configuration transformation files
14:01:53 Verbose | Looking for appSettings and connectionStrings in any .config files
14:59:36 Verbose | Storing a record of the deployment.
The slowdown seems to occur when the feature Configuration Variables starts running, which basically does a recursive search through your 14k files until it finds a .config one, and then it digs into that file to look for “AppSettings” and “connectionStrings”. It seems like this recursive seach is what’s killing your I/O.
Instead of using “Configuration Variables”, could you try to use the “Substitute Variables in files” feature? On this one you can specify the exact path of the files that you want Octopus to pay attention to, which should significantly decrease the overall time of the process.
Do you have some sort of anti-virus software that might be trying to scan every file that’s being created/moved to that directory? If you have one, adding C:\wwwroot\* as an exception might be a good thing to test.