|
From: Daniel H. <da...@de...> - 2016-04-20 14:30:38
|
Hi, I, running an experiment with 583 millions of triples loaded into Blazegraph 2.1.0. I have 500 queries generated randomly with similar complexity. I started running these queries with a timeout of 120 seconds in the http client. The first queries get small times around 2 seconds, except some that gets around 40 seconds. However, in query 37 I got a timeout. Then, all the following queries get timeouts. I guessed that this behavior was because the server was working in the previous query when the following queries arrive. That is, the server does not notice that the client have a timeout, so it is not waiting for a result. I found the timeout option in the documentation. Thus, now I'm running queries with the option &timeout=1 to check if this behavior was because running queries simultaneously. I starting getting only results in less than 1 second, and some trunked results with an internal timeout error message that truncate the JSON output. However, after some queries I get the timeout in the client again, and then all the following queries get timeout. Now I guess that a GC job that avoid receiving more queries by the server. I set the parameter -Xmx6g in the java command. The machine have 32GB of RAM and 6 cores. I do not put more memory in the heap, because the documentation does not recommend it. However, top says that the process has VIRT=6913m RES=781m and CPU=104%. That is, the process is underusing the machine resources. I found that I can use the option analytic to using the system heap instead of the java heap. The documentation said that this will solve the GC issue. Do you think that am I right in suppositions about the GC? Cheers, Daniel |