Obviously JMeter supports much more than 30 threads. But if you use JMeter to simulate e.g. 200 concurrent users to check load and response time of your application then you can use e.g.: - 1 jmeter instance with 200 threads or - 2 jmeter instances with 100 threads each or - 4 jmeter instances with 50 threads each or - 8 jmeter instances with 25 threads each ...... The last solution is the best if you want simulate real load that can be generated by 200 real users. The first solution is the worst. I'll explain it below. Let's assume that you have 1 core CPU. Some facts: - at the moment on your cpu can run only one process/thread to simulate multitasking OS gives small amount of time to each process/thread and changes the process/thread context - changing/switching process cost several cpu cycles because cpu registers have to be filled with corresponding data - changing/switching thread is cheaper - not only jmeter runs on your machine also many other application/process bounded to the OS, so jmeter is often dispossess and waiting for cpu cycles - not only workers threads of jmeter runs, also other java threads e.g. GCThread, all those threads compete for cpu - when one thread/process is running others are sleeping/waiting - process/thread can by disposed at any time of execution
Conclusion: - 200 jmeter threads don't mean 200 concurrent users, load generated by those jmeter instances will be much less than this by 200 concurrent real users - more jmeter threads more time spent on switching context, less time used by jmeter worker threads - any worker thread can be disposed (and wait when rest 199 threads will take their cpu time) after receiving answer from server but before calculate time that call to server took so this time will be incorrect So if your goal is to simulate as good as possible load generated by many users then use so much jmeter instances (computers) as you can with as less as possible threads on each jmeter instance. Otherwise your results can be far from reality and you can be surprised why your application can't handle with those users even though jmeter stress tests passed. If someone is interested in comparison how performance of my application changes depending on jmeter configuration (number of threads and number of instances) I can do that test. I have 10 servers with 2 CPU each and each CPU with 4 core. Those servers can be used as a JMeter clients. Best regards, Jakub W dniu 11 września 2009 15:54 użytkownik sebb <[email protected]> napisał: > On 11/09/2009, Jakub Białek <[email protected]> wrote: >> How about tomcat is it on linux or windows machine? Make sure that OS >> doesn't limit the max number of inbound connection. >> >> Jakub >> >> BTW. I think that 200 thread on 1 jmeter instance are to many if you >> don't have cpus that support 64 threads simultaneously ;) . I usually >> use no more than 50 on 8 core system. >> > > A single JMeter instance can support many more than 50 threads, > depending on the test plan. > >> >> 2009/9/11 Mytho Logic <[email protected]>: >> > Hi, >> > >> > I tried with 550 threads in tomcat for 500 concurrent users. But not >> > succeed. >> > >> > Jmeter Client:- >> > System: Windows XP Professional Verison 2002 SP2 >> > Computer: Intel(R) Core(TM)2 CPU 6300 @ 1.86 Ghz 1.86 GHz, 1.97 GB of RAM >> > >> > Jmeter Server:- >> > System: Windows XP Professional x64 Edition Verison 2003 SP2 >> > Computer: Intel(R) Xeon(R) CPU 5130 @ 2.00 Ghz 2.00 GHz, 8.00 GB of RAM >> > >> > Thanks >> > Maumita >> > >> > >> > 2009/9/11 Jakub Białek <[email protected]> >> > >> >> If you have 500 (truly) concurrent users then you need at least 500 >> >> threads in tomcat, try with 550 thread. >> >> >> >> You run jmeter on windows or linux os? >> >> >> >> Best regards, >> >> Jakub >> >> >> >> 2009/9/11 Mytho Logic <[email protected]>: >> >> > Hi, >> >> > >> >> > I changed the maxthreads limit in tomcat server.xml to 400 and tried >> the >> >> > same testplan again..but few sample requests gets failed and throws >> >> > exception. >> >> > what should I do to solve the problem. >> >> > >> >> > Exception:- >> >> > >> >> > java.net.ConnectException: Connection refused: connect >> >> > at java.net.PlainSocketImpl.socketConnect(Native Method) >> >> > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) >> >> > at >> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) >> >> > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) >> >> > at java.net.Socket.connect(Socket.java:519) >> >> > at java.net.Socket.connect(Socket.java:469) >> >> > at sun.net.NetworkClient.doConnect(NetworkClient.java:157) >> >> > at sun.net.www.http.HttpClient.openServer(HttpClient.java:382) >> >> > at sun.net.www.http.HttpClient.openServer(HttpClient.java:494) >> >> > at sun.net.www.http.HttpClient.<init>(HttpClient.java:231) >> >> > at sun.net.www.http.HttpClient.New(HttpClient.java:304) >> >> > at sun.net.www.http.HttpClient.New(HttpClient.java:316) >> >> > at >> >> > >> >> >> sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:817) >> >> > at >> >> > >> >> >> sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:769) >> >> > at >> >> > >> >> >> sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:694) >> >> > at >> >> > >> >> >> org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:431) >> >> > at >> >> > >> >> >> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1021) >> >> > at >> >> > >> >> >> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1007) >> >> > at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290) >> >> > at java.lang.Thread.run(Thread.java:595) >> >> > >> >> > Thanks >> >> > Maumita >> >> > >> >> > >> >> > On Fri, Sep 11, 2009 at 3:07 PM, sebb <[email protected]> wrote: >> >> > >> >> >> On 11/09/2009, Mytho Logic <[email protected]> wrote: >> >> >> > Hi, >> >> >> > >> >> >> > In tomcat server.xml, I changed the maxtheads limit to 300 and kept >> >> >> > JAVA_OPTS=-Xms512m -Xmx1024m >> >> >> > >> >> >> > But not succeed.I am getting same "java.net.ConnectException: >> >> Connection >> >> >> > refused: connect" exception. Am I missing anything to change in >> >> >> server.xml >> >> >> > file. >> >> >> > The machine on which tomcat server is running has 2 GB RAM. >> >> >> > >> >> >> > Please help on this. >> >> >> >> >> >> This appears to be a Tomcat configuaration issue. >> >> >> >> >> >> Read the Tomcat documentation carefully, and if that does not answer >> >> >> your query, then post a question on the Tomcat user list. >> >> >> >> >> >> > Thanks >> >> >> > Maumita >> >> >> > >> >> >> > >> >> >> > On Fri, Sep 11, 2009 at 10:15 AM, Deepak Shetty <[email protected]> >> >> >> wrote: >> >> >> > >> >> >> > > Hi >> >> >> > > http://tomcat.apache.org/tomcat-5.5-doc/config/http.html >> >> >> > > There are three thread related properties in server.xml . You >> seem >> >> to >> >> >> have >> >> >> > > run into maxThreads limit >> >> >> > > Note that if your server cant handle the load that is a server/OS >> >> >> problem , >> >> >> > > you are more likely to get help on a tomcat forum. Jmeter is >> >> >> generating the >> >> >> > > load correctly. >> >> >> > > regards >> >> >> > > deepak >> >> >> > > >> >> >> > > On Thu, Sep 10, 2009 at 9:38 PM, Mytho Logic < >> >> >> [email protected] >> >> >> > > >wrote: >> >> >> > > >> >> >> > > > Hi, >> >> >> > > > >> >> >> > > > I am using jmeter version 2.3.2. >> >> >> > > > To test my application for 200 concurrent users I have used >> >> >> distibuted >> >> >> > > > testing set up. >> >> >> > > > It works fine for 200 users. >> >> >> > > > The test plan was - >> >> >> > > > 1. 200 concurrent users will first hit the home page >> >> >> > > > 2. After that 200 concurrent users will hit the products page >> >> >> > > > 3. After that 200 concurrent users will hit the product Detail >> >> page >> >> >> > > > >> >> >> > > > For concurrent user setup I have used 'Synchronizing Timer' >> above >> >> >> the >> >> >> > > > thread >> >> >> > > > groups and mentioned 200. >> >> >> > > > It works fine and I got the result. >> >> >> > > > >> >> >> > > > Setup:- >> >> >> > > > >> >> >> > > > Tomcat server, Jmeter client and Jmeter server all are in 3 >> >> >> different >> >> >> > > > machine. >> >> >> > > > >> >> >> > > > Tomcat Server >> >> >> > > > ------------- >> >> >> > > > JAVA_OPTS=-Xms1024m -Xmx1024m >> >> >> > > > >> >> >> > > > Jmeter Client >> >> >> > > > ------------- >> >> >> > > > HEAP=-Xms512m -Xmx1024m >> >> >> > > > >> >> >> > > > Jmeter Server >> >> >> > > > ------------- >> >> >> > > > HEAP=-Xms512m -Xmx4096m >> >> >> > > > >> >> >> > > > Using the same configuration and same setup,when i tried for >> 220 >> >> >> > > concurrent >> >> >> > > > users for few few sample requests I got >> >> >> > > > "java.net.ConnectException: Connection refused: connect: >> >> exception. >> >> >> > > > Sometime I succeded for 220 concurrent users without any >> >> errors.But >> >> >> next >> >> >> > > > time whne I again run the test plan for >> >> >> > > > 220 concurrent users I got exception. >> >> >> > > > >> >> >> > > > What is the reason behind this exception and how can I solve >> >> this? >> >> >> > > > I need to load my application upto 500 concurrent users. Please >> >> >> suggesst >> >> >> > > > how >> >> >> > > > can I do this? >> >> >> > > > >> >> >> > > > This is an urgent requirement. >> >> >> > > > >> >> >> > > > Thanks >> >> >> > > > Maumita >> >> >> > > > >> >> >> > > >> >> >> > >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: [email protected] >> >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> >> >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

