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_an
d_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

[email protected]

Providing CF and CFBuilder troubleshooting services 

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




From: [email protected] [mailto:[email protected]] On Behalf Of Frank Moorman
Sent: Tuesday, February 01, 2011 12:03 PM
To: [email protected]
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

[email protected]

Providing CF and CFBuilder troubleshooting services 

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

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Ajas Mohammed
Sent: Monday, January 31, 2011 11:17 PM
To: [email protected]
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 

http://www.rupeshk.org/blog/index.php/2007/12/images-and-cfdocument-performa
nce/

 

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 <[email protected]>
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 <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 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 http://www.fusionlink.com
-------------------------------------------------------------

Reply via email to