Thank you Charlie...  And Ajas and Chris...

We are on the same mental page. My whole reasoning for this thread is that I am having random timeouts. (I know they are not really random ;-> ) I do think they are related and I do not believe the page actually timing out is the real problem. When it fails, I know which page failed, but I do not have any tool to see what else was going on at the same time. I was looking to see what tools are available that will give me more server information, preferrably one that will tell me what was happening when the error occurred, not 10 minutes later when I can actually look at a monitor.

I mentioned the CFDOCUMENT with the images, because I know it is a big performance hit. I suspect (but currently have no proof) that the pages that are failing are executing at the same time as the pdf creation process. (Yes, I am using localurl) I also suspect it is the other pages timing out instead of the actual pdf creation page, because I know I have increased the default timeout individually on those pages in the past.  I do not want to increase the global timeout default, because while that may help give the other pages a few more seconds to finish what they are doing, it will not fix the root cause and only (temporarily) mask the problem.

If/when (probably when) I install Fusion Reactor, I will try to see the common theme with the multiple timeouts. If I see createInspectionForm.cfm running at the same time in every case and taking a lot of memory, I will definitely raise an eyebrow in that direction. However, if I see a long running memory intensive sql at the same time, I will know where else to look. Right now, I believe blind is an appropriate term, and I am only guessing based on past experience.

Once again,
Thank you everyone...
Frank

Charlie Arehart wrote:

Frank, as for your last question, you could certainly programmatically grab and output the memory use (overall, in the heap, not for any specific request) at the end of a request using various means. The CF Admin API offers some (but the memory-related stuff would again only be in the servermonitoring.cfc which is only in Enterprise). You can call Java objects to get the memory (just google to find many examples of that).

I will point out that FusionReactor will take care of this for you. In its requests pages (running, recent, long, slow) as well as its request log, it logs the amount of memory in use at the time of the start and end of each request.

All that said, you mention an interest primarily in requests that timeout. I’ll say as an aside that the timeout itself is probably not doing what you expect. CF generally will not timeout most long-running requests when they cross your specified timeout value. Instead, it will generally take as long as it needs doing some tag that it can’t interrupt (like a CFQUERY or CFHTTP) and only after that returns (which could be minutes or hours later in some situations) will it then check the time on some subsequent tag (and not every kind) to then say, “oh goodness, this page has gone on too long”. The tragedy is that if it then was allowed to run a mere few more milliseconds, it might have completed, since the really slow tag was much earlier. I discuss all this (and why I therefore recommend against using timeouts, or any “kill request” feature) in a blog entry:

http://www.carehart.org/blog/client/index.cfm/2010/10/15/Lies_damned_lies_and_CF_timeouts


Also, as for your wishing you could view the memory in use at the time of the long-running page, I’ll argue that also may not be as useful as you think. Often, CF memory problems are not at all what they seem (and may not be the cause of problems you are having). I discuss that in another blog entry (the start of a planned series), at:

http://www.carehart.org/blog/client/index.cfm/2010/11/3/when_memory_problems_arent_what_they_seem_part_1

Back to your questions, your last one is quite appropriate. You often do need to know what other requests were running at the time of a problem, and here again FusionReactor comes to the rescue with its Crash Protection notification alerts, which can tell you (by email or in a log) what requests were in fact running at the time of a problem (requests too slow, or too many running at once, or free memory too low). I’ll add that both SeeFusion and the CF Server Monitor do also offer such alerts, and they all include in their attachments a thread dump of all running requests which can provide the kind of “what line was running” detail that Ajas alluded to earlier in the thread.

Hope that helps.

/charlie arehart

char...@carehart.org

Providing CF and CFBuilder troubleshooting services

at http://www.carehart.org/consulting


From: ad...@acfug.org [mailto:ad...@acfug.org] On Behalf Of Frank Moorman
Sent: Tuesday, February 01, 2011 12:03 PM
To: discussion@acfug.org
Subject: Re: [ACFUG Discuss] CF9 Performance

 

Thanks all...

I am going to suggest getting Fusion Reactor (It should be an easy sell based on cost to benefit ratio.)

I have always been somewhat performance minded, which I tend to see in other old school programmers that remember cpu's operating at 1Mhz and memory measured in K or even bytes. (My old Vic-20 stated 3583 bytes free once the buffers and screen memory en were allocated.) I always paid attention to the exec times and SQL time in debug, but Charlie is correct... I am working blindly if I can only see what is going on in a single thread.

I actually was happy with CF Server Monitor, but I only had it for 30 days... When I entered the CF9 standard license and saw it go away, I was disappointed. I liked exploring what was really going on and then I felt like one of my arms was cut off.

If I have a page that does timeout is there a way to include memory usage in my error report? In a best case scenario, I do not hear about an error until 10 minutes later; at that point the root cause is usually gone and monitoring is too late. If I can see these other 3 requests were executing at the same time I might have my smoking gun.

Thanks again,
Frank

Charlie Arehart wrote:

I can hardly add more. :-) Good summary, and thanks for the kind regards, Ajas.

Really Frank (and others in that boat), it’s so true: if you regard CF as a black box which when it “hangs” can only be “restarted” to “make the problem go away”, you’re really not solving the root cause problem. A tool like FusionReactor (or SeeFusion, or the CF Server Monitor, if on Enterprise) can be so vital. If you need help learning how to use FR particularly, besides the ample docs, they also have training (which I wrote and teach), and an awesome mailing list (where I and others actively help people solve problems).

You can also hire folks who can help you interpret what you find, to connect the dots and solve the problems (hopefully) quickly. Besides myself, there are many others who do that sort of consulting, and I list them at http://www.carehart.org/cf411/#cfassist.

/charlie arehart

char...@carehart.org

Providing CF and CFBuilder troubleshooting services

at http://www.carehart.org/consulting

 

 

From: ad...@acfug.org [mailto:ad...@acfug.org] On Behalf Of Ajas Mohammed
Sent: Monday, January 31, 2011 11:17 PM
To: discussion@acfug.org
Subject: Re: [ACFUG Discuss] CF9 Performance

 

Frank, here are my thoughts as far as performance optimization is concerned. I have solved my company's dreaded performance problems, thanks to FusionReactor and good advice from this group and more specifically Charlie Arehart. Thank you all. :-)

 

1. Get FusionReactor. Trust me, you will never use ColdFusion without FusionReactor next time. I guarantee it.For 300 dollars you will not go wrong. 

 

2. FusionReactor will let you monitor all requests i.e. running or completed. So you can look at what requests took lot of time.

 

3. Even better, if a page is running slow, you can go and view exactly on which line number the code is stuck executing. Brilliant feature to solve performance problems. I love it.

 

4. You can view system metrics to see your servers health like memory, cpu usage, currently running request count all in one screen.

 

5. You can kill a request. Worst case scenario. There are exceptions but still there is an option. 

 

I can just go on like that. No kidding about that. Its an awesome tool for CFers.

 

Now to the other important point. You didnt mention much about your configuration. How much memory you have available? things like that. If you can tell us that, we can help you better.

 

Now you do say, its because of images in pdf. So let me ask you this, are you using local images or images from a url. If you are not using local images, then look at localurl = "yes" attribute that was added to cfdocument in CF 8/9.

 

I would also look at the image you are using and check for the famous issue posted by Rupesh Kumar 

 

Finally, have you looked at any of the logs in ColdFusion to see anything obvious?

 

Let me know if you have questions.

 

HTH


<Ajas Mohammed />
http://ajashadi.blogspot.com
We cannot become what we need to be, remaining what we are.
No matter what, find a way. Because thats what winners do.
You can't improve what you don't measure.
Quality is never an accident; it is always the result of high intention, sincere effort, intelligent direction and skillful execution; it represents the wise choice of many alternatives.


On Mon, Jan 31, 2011 at 8:12 PM, Frank Moorman <stretch...@franksdomain.net> wrote:

All,

The last month I have encountered a few performance issues. About 3 times a week I am getting a "The Request has exceeded the maximum time limit." It is happening on different pages and different tags. I know I can probably increase the global timeout value, but I would rather fix any real issue instead.

Here is the question... We are on a small budget, I can get the owner to spring some cash, if it is really necessary. What would be my best option to find out the root cause of the issues? We are using CF9 Standard. I know the performance monitor in enterprise is decent, but for the $6000 upgrade cost, he won't be happy if it does not get me to the right results. (he'll deal with it, but I wouldn't like spending that much if I don't get my answer.)

Is fusion reactor a better choice than the CF9 Enterprise upgrade?

Does anyone else know other good choices?

Right now my *guess* is that our large picture based pdf files are being created at the same time limiting overall resources slowing down the other pages. It would be nice to see what the resources are on the machine at the time of the error. To add to the complexity, IIS and MySQL are all running on the same server. (It is a small enough site, I have never seen more the 300MB of RAM allocated to MySQL.)

Thanks,
Frank


-------------------------------------------------------------
To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------



 


-------------------------------------------------------------
To unsubscribe from this list, manage your profile @
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by FusionLink
-------------------------------------------------------------

-------------------------------------------------------------
To unsubscribe from this list, manage your profile @
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------


-------------------------------------------------------------
To unsubscribe from this list, manage your profile @
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by FusionLink
-------------------------------------------------------------
-------------------------------------------------------------
To unsubscribe from this list, manage your profile @
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------

Reply via email to