On 2014-09-15 16:24, Bart Vandewoestyne wrote:
> On 2014-09-15 14:28, Bart Vandewoestyne wrote:
>> [...]
>> The experiment was the following: repeat a SPARQL query 1000 times (by
>> sending 1000 HTTP curl requests containing a certain SPARQL query to
>> Virtuoso) and time its execution (using time_total from curl).  As you
>> can see, most of the time the query takes about 1 second to execute, but
>> about every 100 query executions it takes much more: 4 to 8 seconds.
>>
>> I am particularly interested in an explanation for this behavior.  Why
>> do we see these 'peaks' of execution times ranging from 4 to 8 seconds?
>>   Is Virtuoso itself causing this, or could there be an other 'external'
>> factor that is causing this?  If there are other things I can test or
>> monitor to find out, or you need more information, please let me know.
>
> OK.  I performed another experiment that probably brings us closer to an
> explanation.
>
> If my Virtuoso server is at machine SERVER, and I run the script that
> performs the 1000 curl requests from CLIENT, and let curl connect to the
> IP address of server, then I do get the spikes:
>
> https://dl.dropboxusercontent.com/u/32340538/repeattest_with_union_with_ip.png
>
>
> If I run the script on SERVER and let curl connect to localhost, then I
> don't get the spikes and all queries have a running time below one second:
>
> https://dl.dropboxusercontent.com/u/32340538/repeattest_with_union_localhost.png
>
>
> So the spikes are related to the fact that I send my SPARQL as a HTTP
> request using curl.
>
> Next question is then of course why most of the time the requests take
> only 1 second, and about every 100 or so requests, the request takes 4
> to 8 seconds.
>
> Anybody?  My next research on this issue would be to monitor the client
> with dstat and see if that can learn me more.  If anybody could tell me
> where to look at, or knows of a good way to monitor the client and get
> an insight in what is happening, I would be happy to hear!

I have more info: I ran the script from another client machine, and from 
that machine I do not see the long response times:

https://dl.dropboxusercontent.com/u/32340538/repeattest_with_union_sandy-quad.png

My first test was performing the curl SPARQL requests from my laptop 
(wireless connection) and had the long response times about every 100 
requests.  The test from another machine with a wired connection didn't 
have these long responses.

So my conclusion would be that the long responses are not caused by 
Virtuoso, but are due to some network-issue on my (wireless) laptop.  It 
is however not yet clear to me what is causing this.  If anybody has 
suggestions, feel free to let me know.

Kind regards,
Bart

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to