So we ran a load test last night with 100 concurrent users. Everything went
fine *except* this ram disk problem  and another problem with a missing
template include. Looking at it closer, both errors "Could not find the
included template" used application mappings to do the include. 

These are defined in the application.cfc:

<cfcomponent output="false" extends="coldfireApplication">

 <cfset this.name                        = 'YourMama'>
 <cfset this.mappings[ "/publicroot" ]       = webroot & 'web\public\' />
 <cfset this.mappings[ "/ram" ]                   = "ram://" />

</cfcomponent>

Cf 8.01 had a hotfix that was supposed to fix  custom tag path mappings
acting up under load:
http://kb2.adobe.com/cps/529/cpsid_52915.html

73761   Fix for the error "Cannot find CFML template for custom tag" thrown
under load when using THIS.customtagpath in application.cfc and "enable per
app settings" is enabled.


But I am running CF 9.01 with all the hotfixes. BTW, I dumped the ram disk
after some failed includes and the file *did exist* on the ram disk.

------

I just did another load test this morning, however this time the load was
all done on a single application testing a form submission process (this is
where the include error was generated). No errors this time. The difference
between this test and the last test that generated lots of errors is that
this test did not run concurrent load on the other side of this application
which uses an application.cfc that extends the main application.cfc via
applicationProxy.cfc. It’s a child application that shares the main
applications name and scope but also enables client variables and does some
other stuff (pseudo code below)

<cfcomponent output="false" extends="ApplicationProxy">
       <cfset this.clientManagement    = true>
      <cfset this.setClientCookies        = true>
      <cfset this.setDomainCookies    = true>
     <cfset this.clientStorage                = 'LF-CLIENTVARS'>
   
     <!--- NO MAPPINGS HERE LIKE IN THE MAIN APPLICATION.CFC. COULD THAT
BE THE PROBLEM?? --->

  <cffunction name="onRequestStart" returnType="boolean" output="false">
        <cfargument name="thePage" type="string" required="true">
             <cfset super.onRequestStart(arguments.thePage)>
            <cfreturn true>
  </cffunction>

</cfcomponent>

-------

So my guess is that because it doesn't include the application mappings that
it is somehow overwriting them when two requests run at the same time.
Strange I know, but that’s the best I can figure. I am gonna run another
load test tomorrow night, and try adding the mappings into the child
application and see if that helps.



Brook


-----Original Message-----
From: Brook Davies [mailto:[email protected]] 
Sent: February-22-12 12:30 PM
To: cf-talk
Subject: RE: Ram Disk problem under load


Hi Raymond,

I don't see your reply actually... oh here it is in my junk
folder...grrrr...

Tonight when the load test is running, I'll pause midway and swap in a real
file path and see how that runs. 

The only other thing I can think is that there is a name collision and the
file is deleted by another thread who was using the same filename. But the
filename variable IS var scoped (FYI, this IS inside an application scoped
CFC).  

Brook



-----Original Message-----
From: Raymond Camden [mailto:[email protected]]
Sent: February-22-12 11:38 AM
To: cf-talk
Subject: Re: Ram Disk problem under load


Noticed you didn't reply to my idea... can you also ensure that it really is
a VFS issue by simply switching to a real folder - just for testing?

On Wed, Feb 22, 2012 at 12:05 PM, Brook Davies <[email protected]> wrote:
>
> Good idea, I'll check the contents of the ram disk after any failures...
>
> Brook
>
> -----Original Message-----
> From: Pete Freitag [mailto:[email protected]]
> Sent: February-22-12 9:58 AM
> To: cf-talk
> Subject: Re: Ram Disk problem under load
>
>
> Hi Brook,
>
> Certainly you will want to have a try / catch around that, you could 
> put the delete of the ram file in a <cffinally> tag to ensure it runs, 
> otherwise if an error is thrown in the cfinclude the file never gets 
> deleted and stays in ram.
>
> Also to answer your question about the garbage collection, I don't 
> think that would be the issue, the garbage collector only removes 
> objects that have a reference count of zero, I would assume that when 
> you have a file on the ram disk ColdFusion maintains a reference to 
> it, when you delete the file CF will delete the reference and allow the GC
to cleanup.
>
> I don't think reducing the size of your ram disk will make the problem 
> go away.
>
> What you might want to do is run this after you run your load test to 
> see whats in there:
>
> <cfdirectory directory="ram://" action="list" recurse="true" 
> name="dir"> <cfdump variable="#dir#">
>
> --
> Pete Freitag - Adobe Community Professional http://foundeo.com/ - 
> ColdFusion Consulting & Products http://petefreitag.com/ - My Blog 
> http://hackmycf.com
> - Is your ColdFusion Server Secure?
>
>
>
>
> On Wed, Feb 22, 2012 at 12:44 PM, Brook Davies <[email protected]>
wrote:
>
>>
>> Hi Pete,
>>
>> I don't think its possible because the ram disk size is set to 500 
>> megs, and this was only 10 concurrent users!  I have another test 
>> with
>> 100 cuncurrent users running tonight and I guess we'll see what 
>> happens though I am sure this is going to be an issue. I added a 
>> try/catch around the write/read and am them attempting to do it 
>> again, so I guess we'll see what happens.
>>
>> Maybe I should reduce the size allocated to the ram disk?
>>
>> Brook
>>
>> -----Original Message-----
>> From: Pete Freitag [mailto:[email protected]]
>> Sent: February-22-12 9:35 AM
>> To: cf-talk
>> Subject: Re: Ram Disk problem under load
>>
>>
>> Another thing to consider is that the Ram disk has a size limit 
>> specified in the ColdFusion administrator. Is it possible that the 
>> write failed (perhaps
>> silently) because the ram disk was full.
>>
>>
>> --
>> Pete Freitag - Adobe Community Professional http://foundeo.com/ - 
>> ColdFusion Consulting & Products http://petefreitag.com/ - My Blog 
>> http://hackmycf.com
>> - Is your ColdFusion Server Secure?
>>
>>
>>
>> On Wed, Feb 22, 2012 at 3:12 AM, Brook Davies <[email protected]>
>> wrote:
>>
>> >
>> > Hey everyone,
>> >
>> > Did some very light pre-load testing yesterday in preparation for a 
>> > larger test tomorrow. This limited load threw some errors. I'm 
>> > writing to the in memory file system some CFML code, that I then 
>> > cfinclude to
>> execute it.
>> >  Its
>> > pretty straight forward code, and this was under very little load
>> > (10 concurrent users only).
>> >
>> > Note: I have an application mapping for the ram disk in
application.cfc:
>> >
>> > <cfset this.mappings[ "/ram" ]              = "ram://" />
>> >
>> > And then in the problem code:
>> >
>> > ---------------------------------
>> > <!--- set the filename to a unique name ---> <cfset filename = 
>> > 'wildcardparsing-#createUUID()#.cfm'>
>> >        <!--- write the file --->
>> >        <cffile action="write" output="#cfml#" 
>> > file="ram://#filename#"/>
>> >        <!--- include and execute the cfml --->
>> >        <cfinclude template="/ram/#filename#" />
>> > <!--- clean up --->
>> > <cffile action="delete" file="ram://#filename#"/>
>> >
>> > ---------------------------------
>> >
>> > The error I got was:
>> >
>> > Could not find the included template 
>> > /ram/wildcardparsing-66031760-EEDC-69FB-8F2EFEC77564096A.cfm.
>> >
>> > I got a similar error in another template on a different execution 
>> > that uses similar code to generate the CFML for a CFDOCUMENT tag 
>> > and then writes it to ram disk and includes. I have never seen this 
>> > error in development it only started happening under a wee bit of 
>> > load. What could be the problem? The In memory file system is set 
>> > to
>> > 500 megs in the cfadmin (which is probably overkill..). Would a 
>> > garbage collection before the include had been completed cause this 
>> > to
> happen?
>> >
>> > Brook
>> >
>> >
>> >
>> >
>> >
>>
>>
>>
>>
>
>
>
> 





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:350073
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to