Can't get over 15 max concurrent users

238 views
Skip to first unread message

nineplanets

unread,
Apr 12, 2013, 2:41:19 PM4/12/13
to fusion...@googlegroups.com
I'm using jmeter to run a few tests on a Windows CF9 VPS.  I've tried testing with 5,10,15,20 and 50 concurrent users.  When I view the metrics on fusion reactor it never gets over 15 active requests.  Shouldn't this number vary with the number of users? 

On the CF9 Request Tuning area I started with

Maximum number of simultaneous Template requests 
10
Maximum number of simultaneous Flash Remoting requests 
1
Maximum number of simultaneous Web Service requests 
1
Maximum number of simultaneous CFC function requests 
1

And then I tried upping this one:
Maximum number of simultaneous Template requests 
20

That didn't make any difference.

There are also these settings:

JRun Master Request Limits
Maximum number of running JRun threads 
-1
Maximum number of queued JRun Threads 
-1

I don't know what the -1 is supposed to mean.  That is the setting when I load the page after restarting CF.  I tried entering 50 / 100 respectively and then update the page.  But after I restart CF and log back into the admin they both say -1 again.   Is this normal?

Thanks!
Annie

Ajas Mohammed

unread,
Apr 12, 2013, 4:49:18 PM4/12/13
to fusion...@googlegroups.com
I will let experts answer this but here is my take.

First of all, lets clear the confusion between requests and users. 1 user can be running 10 different .cfm pages, so its important to identify first, how many total requests (cfm or cfc calls) are actually being made or running at that time. For debugging purposes, I would say, pick 6 users, and let them run 5 different .cfm pages, so 6 x 5 = 30 requests. Note, i say cfm, because as per your setting, you are saying, only 1 CFC can run, 1 webservice. Also, put a delay on those pages (via sql wait delay WAITFOR DELAY 'HH:MM:SS'), so they show up on running requests, because I am wondering if they are already being processed when you look at FR.

The Maximum number of simultaneous Template requests 10, Maximum number of simultaneous Flash Remoting requests 1, Maximum number of simultaneous Web Service requests 1, Maximum number of simultaneous CFC function requests  1. So if you add up it comes to (10+1+1+1) 13 total requests. Now you say, you increased Maximum number of simultaneous Template requests 20. Note, since you have set Maximum number of simultaneous Template requests 10, that means in the queue of max 20, you could have only 10 cfm requests. So again, make sure, what you are running, cfm, webservice calls, or cfc which you have restricted already. You dont mention anything about queued requests. Or maybe IIS is request queuing based of max worker processes rather than CF.

What is the application pool setting for Maximum Number Of Worker Processes? What version of Windows ? IIS version ?  For our windows server 2003, iis 6.0, the Maximum Number Of Worker Processes is 1, yes positive 1. Without knowing your exact environment and setup, it would be tough to tell.

I have never seen this before JRun Master Request Limits, Maximum number of running JRun threads  -1 Maximum number of queued JRun Threads  -1.

Just trying to help you. Charlie is great resource for these things or even FR folks.

Guys correct me If I misstated anything.

Thanks,




<Ajas Mohammed /> 
iUseDropbox(http://db.tt/63Lvone9) 
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.



--
You received this message because you are subscribed to the Google Groups "FusionReactor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fusionreacto...@googlegroups.com.
To post to this group, send email to fusion...@googlegroups.com.
Visit this group at http://groups.google.com/group/fusionreactor?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Charlie Arehart

unread,
Apr 12, 2013, 8:29:45 PM4/12/13
to fusion...@googlegroups.com

I’ll offer some thoughts on Ajas’s helpful comments, then some more thoughts for Annie. (Pardon the long note, but as has been reflected in the first two notes, this stuff isn’t always as obvious as it might seem it should be.)

First, Ajas, when you propose doing a delay via the SQL statement, WAITFOR DELAY, I would propose that a better delay (in a CFML page) would to use the sleep function (http://www.cfquickdocs.com/cf9/#sleep) which takes a number of milliseconds for a thread to go to sleep. It uses no CPU or other resources (whereas a SQL WAITFOR DELAY ties up a DB connection—and also is SQL Server-specific.)

Second, Ajas, you say “Note, since you have set Maximum number of simultaneous Template requests 10, that means in the queue of max 20, you could have only 10 cfm requests.” I’m not sure what you mean there. If she changed the max simult requests value from 10 to 20, that should indeed allow 20 to run at once.

Also, lest anyone reading Ajas’ comment about application pools might misconstrue things (“For our windows server 2003, iis 6.0, the Maximum Number Of Worker Processes is 1, yes positive 1”), while he surely knows this, let’s clarify for readers that that does NOT correspond directly to running requests: 1 pool is indeed the default, but that could let in hundreds of simultaneous requests if CF was told to allow that.

But thanks for mentioning my blog entry about how sometimes IIS could be the limiter, especially a problem in CF9 and IIS where by default only 25 max requests can run at once. But since Annie says she “never gets over 15 active requests”, that’s clearly not the issue.

Now, Annie, when you say that according to FR CF “never gets over 15 active requests”, let’s clarify that you could be running hundreds of requests in a few second span, and still not hit 15 simultaneous, if they are all fast. The more important question, in FR, is to correlate what you see (the top left graph of the FR System Metrics page, I assume) with the lower left graph, which shows request response time. If you have no long-running requests, then you would not necessarily be hitting any “limit”. You just may not have pushed enough traffic to stress your CF so that FR *did* show more than 15 ever running.

But Ajas also mentions queuing, noting you don’t mention anything about that. Now, there are 2 kinds of queuing: that in CF (when you DO hit the CF Admin Request Tuning limits you mentioned), and that in FR, if you turn on FR’s Crash Protection, and tell it to start queuing requests once a given limit is reached.

I’d start by asking if that may be what’s happening for you: do you have the FR Crash Protection set to queue requests? If so, that could indeed be artificially limiting your requests.

If you don’t have that enabled, then while I would not suspect you’re hitting CF’s queuing, since you don’t show hitting the limit, there is a possibility. There are those 4 kinds of requests (the Request Tuning settings, changeable in CF Enterprise, Developer, or Trial). FR doesn’t currently distinguish those 4 types. So you could be hitting a limit with one of the types of requests, and it would not be clear in FR. And it could be that when one type of request type is queued, that other requests (of other types) then are held up. It could happen. :-)

But here’s some good news: you CAN get FR to track CF request queuing (of all 4 types of requests) if you add the free “FusionReactor Extensions for ColdFusion”, or FREC, available at http://www.fusion-reactor.com/fr/plugins/frec.cfm. It causes FR to grab that (and lots of other great info) from CF, and it logs it into new logs in the FR logs directory. Most important, look at the realtimstats.log, which has columns for tracking CF request queuing, of all 4 types (more at http://docs.intergral.com/pages/viewpage.action?pageId=9928727).

Hope that helps.

 

/charlie

 

From: fusion...@googlegroups.com [mailto:fusion...@googlegroups.com] On Behalf Of Ajas Mohammed
Sent: Friday, April 12, 2013 4:49 PM
To: fusion...@googlegroups.com
Subject: Re: [fusionreactor] Can't get over 15 max concurrent users

 

I will let experts answer this but here is my take.

First of all, lets clear the confusion between requests and users. 1 user can be running 10 different .cfm pages, so its important to identify first, how many total requests (cfm or cfc calls) are actually being made or running at that time. For debugging purposes, I would say, pick 6 users, and let them run 5 different .cfm pages, so 6 x 5 = 30 requests. Note, i say cfm, because as per your setting, you are saying, only 1 CFC can run, 1 webservice. Also, put a delay on those pages (via sql wait delay
WAITFOR DELAY 'HH:MM:SS'), so they show up on running requests, because I am wondering if they are already being processed when you look at FR.

The Maximum number of simultaneous Template requests 10, Maximum number of simultaneous Flash Remoting requests 1, Maximum number of simultaneous Web Service requests 1, Maximum number of simultaneous CFC function requests  1. So if you add up it comes to (10+1+1+1) 13 total requests. Now you say, you increased Maximum number of simultaneous Template requests 20. Note, since you have set Maximum number of simultaneous Template requests 10, that means in the queue of max 20, you could have only 10 cfm requests. So again, make sure, what you are running, cfm, webservice calls, or cfc which you have restricted already. You dont mention anything about queued requests. Or maybe IIS is request queuing based of max worker processes rather than CF.

What is the application pool setting for Maximum Number Of Worker Processes? What version of Windows ? IIS version ?  For our windows server 2003, iis 6.0, the Maximum Number Of Worker Processes is 1, yes positive 1. Without knowing your exact environment and setup, it would be tough to tell.

I have never seen this before JRun Master Request Limits, Maximum number of running JRun threads  -1 Maximum number of queued JRun Threads  -1.

Just trying to help you. Charlie is great resource for these things or even FR folks.

Guys correct me If I misstated anything.

 

Thanks,

 

<Ajas Mohammed /> 

Ajas Mohammed

unread,
Apr 13, 2013, 12:46:20 AM4/13/13
to fusion...@googlegroups.com

On Fri, Apr 12, 2013 at 8:29 PM, Charlie Arehart <charli...@carehart.org> wrote:
Second, Ajas, you say “Note, since you have set Maximum number of simultaneous Template requests 10, that means in the queue of max 20, you could have only 10 cfm requests.” I’m not sure what you mean there. If she changed the max simult requests value from 10 to 20, that should indeed allow 20 to run at once.

Charlie, thanks for sleep function tip. Yes, thats correct, she should be able to run 20 at once. I guess when I wrote my email, I misread that 20 as Maximum number of running JRun threads . My bad really. Thanks for catching that.

So going by what we touched, I tried this test. I set   to 4 to Maximum number of running JRun threads 20. So going by logic, you can have only 4 cfm pages running at a time. Rest will be queued as shown in snapshots attached. I started 7 requests in internet explorer of sleep.cfm (attached),and  since my setting was set at 4, the other 3 requests were queued.

Annie, you could also try using CFSTAT utility (command prompt) to see the queuing. In case of my CF 9.0 standard installation, its located here : C:\ColdFusion9\bin

I pretty much use FR extensively in my day to day work and absolutely love it. Actually apart from just monitoring CF, I learned so many things related to CF internals because of FR. Its almost like Doctor performing a live heart surgery and showing it to you in person. Who does that? FR does for CF. :-)

sleep.cfm
reqs_4.JPG
Queue_0_at_4_Reqs.JPG

Charlie Arehart

unread,
Apr 13, 2013, 12:57:19 AM4/13/13
to fusion...@googlegroups.com

Thanks, and good point about CFSTAT. I do usually point that out as another way to monitor CF queuing. I just was pressed for time earlier so forgot to mention it. ;-)

 

/charlie

 

From: fusion...@googlegroups.com [mailto:fusion...@googlegroups.com] On Behalf Of Ajas Mohammed
Sent: Saturday, April 13, 2013 12:46 AM
To: fusion...@googlegroups.com
Subject: Re: [fusionreactor] Can't get over 15 max concurrent users

 

 

On Fri, Apr 12, 2013 at 8:29 PM, Charlie Arehart <charli...@carehart.org> wrote:

Second, Ajas, you say “Note, since you have set Maximum number of simultaneous Template requests 10, that means in the queue of max 20, you could have only 10 cfm requests.” I’m not sure what you mean there. If she changed the max simult requests value from 10 to 20, that should indeed allow 20 to run at once.

nineplanets

unread,
Apr 13, 2013, 1:02:03 AM4/13/13
to fusion...@googlegroups.com
Thanks Ajas & Charlie for the responses.

It's Win 2008 R2 with IIS 7 & CF9 Enterprise.  There's no limits set in IIS advanced settings.  I don't have any crash protection enabled in FR.

While it stays at 15 active requests, there are more long running requests with more users, and things start to slow down (page load time).  I will try installing the frec plugin to see what I can get from that.  I'll look at cfstat too.

If you can think of anything else I should check, let me know.

Thanks!

nineplanets

unread,
Apr 13, 2013, 1:14:34 AM4/13/13
to fusion...@googlegroups.com
Hmmm.  I can't seem to find cfstat.  I don't see it as an option to enable on Debugging & Logging > Debug Output Settings and I have Enterprise and I've clicked on a bunch of folders and can't find it.  Where should it be located?

Ajas Mohammed

unread,
Apr 13, 2013, 1:28:04 AM4/13/13
to fusion...@googlegroups.com
See snaphot attached. The utility for CF 9.0 standard installation, is located here : C:\ColdFusion9\bin

<Ajas Mohammed /> 
iUseDropbox(http://db.tt/63Lvone9) 
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 Sat, Apr 13, 2013 at 1:14 AM, nineplanets <sup...@nineplanetsllc.com> wrote:
Hmmm.  I can't seem to find cfstat.  I don't see it as an option to enable on Debugging & Logging > Debug Output Settings and I have Enterprise and I've clicked on a bunch of folders and can't find it.  Where should it be located?
cfstat.JPG

nineplanets

unread,
Apr 13, 2013, 1:42:11 AM4/13/13
to fusion...@googlegroups.com
Mine doesn't have that (screenshot attached).  How about for CF9 Enterprise.  There is no ColdFusion9/bin folder.  There is a JRun4/bin folder, but there's no cfstat that I can see.
nocfstat.gif

Ajas Mohammed

unread,
Apr 13, 2013, 10:40:43 AM4/13/13
to fusion...@googlegroups.com
Hmm, interesting. I guess you forgot to mention the most important aspect of your setup, I believe you have multiserver form of cf deployment. If you scroll down in your cf admin (left side), after packing and deployment, you should have instance manager.

If you have multiserver form of deployment, then CFSTAT is not supported.


<Ajas Mohammed /> 
iUseDropbox(http://db.tt/63Lvone9) 
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 Sat, Apr 13, 2013 at 1:42 AM, nineplanets <sup...@nineplanetsllc.com> wrote:
Mine doesn't have that (screenshot attached).  How about for CF9 Enterprise.  There is no ColdFusion9/bin folder.  There is a JRun4/bin folder, but there's no cfstat that I can see.
Reply all
Reply to author
Forward
0 new messages