[Mono-aspnet-list] Very slow website compilation

APS dev.malst at apsystems.it
Fri Oct 2 06:22:49 EDT 2009


Hi,

I have a big issue on a web application I'm running using mod_mono 
with Apache 2.
I have only one application configured and running it (with or 
without batch compilation) I'm experiencing a very long delay waiting 
for the application to compile.
I can see in logs that the assemblies inside bin directory is added 
to domain the first time it's found, here is an example

Mono-INFO: Assembly Loader probing location: 
'/var/www/hypersic/bin/templatelibrary.dll'.
Mono-INFO: Assembly Loader shadow-copied assembly to: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/3c8e4077/5cab6a9f_60252ae8_00000001/templatelibrary.dll'.
Mono-INFO: Image addref templatelibrary 0x3367100 -> 
/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/3c8e4077/5cab6a9f_60252ae8_00000001/templatelibrary.dll 
0x3365ab0: 2

Mono-INFO: Assembly templatelibrary 0x3367100 added to domain 
8ce83063, ref_count=1

Mono-INFO: Assembly Loader loaded assembly from location: 
'/var/www/hypersic/bin/templatelibrary.dll'.
Mono-INFO: Config attempting to parse: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/3c8e4077/5cab6a9f_60252ae8_00000001/templatelibrary.dll.config'.
Mono-INFO: Config attempting to parse: 
'/usr/local/etc/mono/assemblies/templatelibrary/templatelibrary.config'.
Mono-INFO: Config attempting to parse: 
'/var/www/.mono/assemblies/templatelibrary/templatelibrary.config'.

then it starts with web pages and every time it loads a new ascx/ascx 
file there's a log like that:

Mono-INFO: Assembly Loader probing location: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/App_Web_6d545f95.dll'.
Mono-INFO: Image addref App_Web_6d545f95 0x2aaab828ebb0 -> 
/tmp/apache-temp-aspnet-0/ddd13fb8/App_Web_6d545f95.dll 0x2aaab8229e00: 2

Mono-INFO: Assembly App_Web_6d545f95 0x2aaab828ebb0 added to domain 
8ce83063, ref_count=1

Mono-INFO: Assembly Loader loaded assembly from location: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/App_Web_6d545f95.dll'.
Mono-INFO: Config attempting to parse: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/App_Web_6d545f95.dll.config'.
Mono-INFO: Config attempting to parse: 
'/usr/local/etc/mono/assemblies/App_Web_6d545f95/App_Web_6d545f95.config'.
Mono-INFO: Config attempting to parse: 
'/var/www/.mono/assemblies/App_Web_6d545f95/App_Web_6d545f95.config'.
Mono-INFO: Assembly Ref addref App_Web_6d545f95 0x2aaab828ebb0 -> 
WebSicDotNet 0x11dbdd00: 3

after that it starts probing form System libraries and it apparently 
it found them inside gac

Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Web.Services/2.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll'.
Mono-INFO: Assembly Loader probing location: 
'/usr/local/lib/mono/gac/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll'.

after system libraries it starts looking for all the files in bin 
directory and for every file it makes something like

Mono-INFO: Assembly Loader probing location: 
'/var/www/hypersic/bin/APS.API.dll'.
Mono-INFO: Assembly Loader shadow-copied assembly to: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/dcbea906/bc9b83ee_60252ae8_00000001/APS.API.dll'.
Mono-INFO: Assembly Loader probing location: 
'/var/www/hypersic/bin/APS.BaseClasses.dll'.
Mono-INFO: Assembly Loader shadow-copied assembly to: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/97cc1381/f7e93969_60252ae8_00000001/APS.BaseClasses.dll'.
Mono-INFO: Assembly Loader probing location: 
'/var/www/hypersic/bin/APS.Chart.dll'.
Mono-INFO: Assembly Loader shadow-copied assembly to: 
'/tmp/apache-temp-aspnet-0/ddd13fb8/assembly/shadow/f7c1e34a/97e4c9a2_60252ae8_00000001/APS.Chart.dll'.

and so on, for the thousands of files placed inside the bin directory.
It seems to me that there's some problem cause all the files seems 
missing even if they are there and it always redo the copying.
Most of the loading time is spent in this multiple shadow copying, as 
I have many assemblies inside bin directory this cause an heavy disk 
usage and many minutes of wait.
It doesn't seems to be a correct behavior, an assembly should be 
shadow copied only one time so I'm try to find out if it's a 
mono/mod-mono-server bug or if it's due to some wrong configuration.
Please help me cause it a very big issue for my customers.
Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-aspnet-list/attachments/20091002/d60bc020/attachment.html 


More information about the Mono-aspnet-list mailing list