On 22/05/07, Stefano Gambetta <[EMAIL PROTECTED]> wrote:
Hello,
           first of all thanks for the prompt replies!

I'll try to answer to all the asked questions.

Seb:

1) I get a max throughput of about 1000 queries sent / sec. I measured
throughput counting the result file number of lines.
I also measured that with sar, more or less they are the same.

Is this with JMeter or the C program?

If JMeter, then I don't think you have a problem.

If not JMeter, then what throughput did you get with JMeter?

2) query response time is very small, in the interval [0,2] ms. The load
test scenario regards an authoritative DNS server, that means that all the
queries are answered from its cache. This is by design. The same query is
sent in every test.

So the main delays will probably be due to network speed.

3) what do you mean by functions or variables? The run method of my test

I mean ${variable) or ${__function()} references in the test plan.

class is a simple:

start_time = System.currentTimeMillis();
lookup.run() // send the query
stop_time = System.currentTimeMillis();
results.setTime(stop_time - start_time);

You should really use

results.sampleStart()
lookup.run() // send the query
results.sampleEnd()

Otherwise the result is not set up properly.

4) Java 6, Linux 2.6.18, Jmeter 2.2

Which supplier of Java?
Some versions of Java seem to be very inefficient compared with Sun
Java on Windows.

Ian:

1) I'm using only one thread, since it is enough to saturate the sampler
CPU. This machine is a single CPU (AMD 1600+ XP).

2) There is NO think time (neither in queryperf nor in my jmeter sampler),
by design. I'm modelling the sistem as an open queueing center with a
transactional load.

Seb:

1) What kind of test did you performed? Sistems, CPUs, DNS servers, threads?

Windows XP, Sun Java 1.4.2_13, Pentium 1.6GHz 1GB RAM.

No DNS servers, 1 thread

How, in java, did you performed the name resolution? Are you sure you are
not measuring your resolver performance, instead of the server one?
I have used the dnsjava package just for this purpose, since it sends each
query directly to the DNS server usign sockets, instead of using system
resolver libs, which cache the replies.

I did not use DNS; I just used Java Request.

2) The slowdown writing result file is interesting, I will try using the
summary listener!

I'm interested to hear how you reached such a high throughput!

Thanka again, if you have other questions just let me know :)

I suggest you try the following test on your host:

Thread Group 1 thread, 1 loop
+ Loop Controller 1000
+ + Java Request time=0 mask=0 (name = Java0)
+ Loop Controller 1000
+ + Java Request time=10 mask=0 (name = Java10)
+ Summary Report

and report the results.

[I can e-mail the plan to you privately if you want]

2007/5/22, sebb <[EMAIL PROTECTED]>:
>
> I've just done a test using the Java Request / Java Test sampler in JMeter
> 2.2.
>
> If I set the sleep_time and sleep_mask to 0, I can get a throughput of
> 20,000-30,000 per second. Obviously this uses around 100% CPU.
>
> For sleep_time of 10, I get an average elapsed of 15ms, and throughput
> of 64/sec which equates to 15.625ms per sample. The average figure of
> 15ms is rounded down, so this agrees with there being very little
> overhead. CPU usage is minimal.
>
> Note that I was using only the Summary Report listener.
>
> If the output is written to a file, then the throughput for the 0
> sleep drops to 3,500-7,000/sec. However the rate for the 10ms sleep
> samplers is only marginally affected, e.g. 63.9 for CVS and 63.8 for
> XML with 1000 samples.
>
> The above suggests that JMeter is behaving well for the limited tests
> I performed.
>
> S
> On 22/05/07, sebb <[EMAIL PROTECTED]> wrote:
> > There could perhaps be a problem...
> >
> > What throughput did you get?
> > What was the average sampler response time?
> > Are you using any functions or variables?
> > Which version of Java, and which OS?
> >
> > S.
> > On 22/05/07, Stefano Gambetta <[EMAIL PROTECTED]> wrote:
> > > Hello,
> > >   I'm evaluating JMeter as a load testing framework for my performance
> > > analysis.
> > >
> > > I'm going to load test a DNS server. To do so, I've written my own
> Java
> > > Request sampler, which issues DNS requests using the package dnsjava.
> > >
> > > My test configuration is very simple: one thread-group (one therad
> > > configured for example), one java request sampler, one simple data
> writer as
> > > listener.
> > >
> > > The problem basically is that with that configuration JMeter can reach
> a
> > > very low throughput (query sent / sec), since during tests CPU get
> > > saturated.
> > >
> > > The known bind queryperf tool can generate a load about six times
> higher
> > > while using less than 30 % CPU. Since this tool is a simple C program,
> I
> > > expected a greater performance, but that results seems to be
> exaggerated.
> > >
> > > I assumed that my sampler class was not well optimized, so I did a
> quick
> > > profiling of JMeter, during the test, in order to discover some areas
> of
> > > improvement.
> > >
> > > I think I saw an interesting result: most of the thread sampler time
> is
> > > spent in one method of one particular class of JMeter, and a minor
> part is
> > > spent inside the Java Request sampler. The mentioned method is:
> > >
> > > SamplePackage.setRunningVersion()
> > >
> > >
> > > Giving that results, I have some questions:
> > >
> > > - what does that method do?
> > > - is it possible to reduce its overhead?
> > >
> > > Thanks for any replies
> > >
> >
>
> ---------------------------------------------------------------------
> 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]

Reply via email to