Re: Advice on hardware upgrade
The behavior Andy describes is guided by the rule that generally, applications hosted in JEE containers are supposed to let the container manage threading. (I think that's written down somewhere in the JEE specs, but I can't remember where, and if it was, it is often "honored in the breach"!). Modern servlet containers are able to support asynchrony [1]. The reason I bring this up is to point out that 1) You should have some level of control of that threadpool that Andy mentioned by configuring your container. What "configuring your container" means is of course going to depend on how you are deploying Fuseki. 2) You might see a difference in behavior (if the behavior you describe is problematic for some reason) by changing containers. Fuseki is distributed as a WAR (in addition to all its other modes) to afford you this choice. ajs6f [1] https://docs.oracle.com/javaee/7/tutorial/servlets012.htm > On Nov 22, 2017, at 8:55 AM, Andy Seaborne <a...@apache.org> wrote: > > > > On 22/11/17 13:37, Marco Neumann wrote: >> On Wed, Nov 22, 2017 at 2:15 PM, Andy Seaborne <a...@apache.org> wrote: >>> >>> >>> On 22/11/17 10:55, Marco Neumann wrote: >>>> >>>> i have noticed that a single fuseki instance spans quite a number of >>>> worker process (~32-35) on one of our root servers ( x86_64 GNU/Linux) >>>> with 8 cores and 128gb ram + ssd. >>>> >>>> does jena fuseki /tdb take full advantage of the extras cores on full >>>> load with these workers? >>> >>> >>> Fuseki runs one thread per request (nearly - sorting can us multiple >>> threads). >> that was my reading of what goes on in process viewer, ~30 is the >> number of workers after a fresh start and idle (no requests) . > > Jetty, as web app container, starts all threads on startup and they go into > somekind of pool - threads are not created per request (Fuseki does not > create threads.) If they are not used, they are just sitting around idle with > a stack area. > > A request comes in and the Fuseki servlet filter sees if it is Fuseki related > and if so, sends it (by java menthod call) to a dispatch servlet, that pokes > around to see what it is and sends it on to the right servlet (again, by java > call, not Servlet.service) > > I only know this as I had to look Monday and yesterday when investigating > what it would take for custom services. > > Andy > >>> >>> It would be nice to execute with more threads but the time to do this ... >>> >>> It's jetty starting the threads. >>> >>> (32 seems a lot but maybe Jetty is allocating based on core+HT count) >> indeed, but it's actually one of our "smaller" test machines and >> performance is quite good so far. >>>Andy >>> >>> >>>> >>>> On Wed, Nov 22, 2017 at 11:22 AM, David Moss <admo...@gmail.com> wrote: >>>>> >>>>> Upgrades are application specific. You need to look at the logs for your >>>>> current system and see if processor is maxing out of memory is swapping >>>>> out >>>>> to disk too much. 2GB RAM looks a bit small but that is irrelevant if your >>>>> processor is at 100% all the time. You might also consider your disk >>>>> access >>>>> time. Faster disks might be a better buy if your processor and RAM look >>>>> OK. >>>>> >>>>> David Moss >>>>> >>>>> From: John Sanders <johnn...@outlook.com> >>>>> Sent: Wednesday, November 22, 2017 10:40:38 AM >>>>> To: users@jena.apache.org >>>>> Subject: Advice on hardware upgrade >>>>> >>>>> Hi, I'm running a Fuseki server on a rather small server. I'm willing to >>>>> upgrade it a little bit (since it's handling a lot of requests) so I was >>>>> wondering which single component I could upgrade to get the best possible >>>>> return. This I suppose boils down to either more RAM or a better CPU. >>>>> Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I >>>>> have >>>>> some money to spend on it, would I be better buying more RAM or a better >>>>> CPU? In the second case (a better CPU), would Fuseki benefit more from a >>>>> faster one (higher frequency) or one with more cores/threads (I assume >>>>> Fuseki is a multi-threaded application)? Thank you all. >>>> >>>> >>>> >>>> >>>
Re: Advice on hardware upgrade
On 22/11/17 13:37, Marco Neumann wrote: On Wed, Nov 22, 2017 at 2:15 PM, Andy Seaborne <a...@apache.org> wrote: On 22/11/17 10:55, Marco Neumann wrote: i have noticed that a single fuseki instance spans quite a number of worker process (~32-35) on one of our root servers ( x86_64 GNU/Linux) with 8 cores and 128gb ram + ssd. does jena fuseki /tdb take full advantage of the extras cores on full load with these workers? Fuseki runs one thread per request (nearly - sorting can us multiple threads). that was my reading of what goes on in process viewer, ~30 is the number of workers after a fresh start and idle (no requests) . Jetty, as web app container, starts all threads on startup and they go into somekind of pool - threads are not created per request (Fuseki does not create threads.) If they are not used, they are just sitting around idle with a stack area. A request comes in and the Fuseki servlet filter sees if it is Fuseki related and if so, sends it (by java menthod call) to a dispatch servlet, that pokes around to see what it is and sends it on to the right servlet (again, by java call, not Servlet.service) I only know this as I had to look Monday and yesterday when investigating what it would take for custom services. Andy It would be nice to execute with more threads but the time to do this ... It's jetty starting the threads. (32 seems a lot but maybe Jetty is allocating based on core+HT count) indeed, but it's actually one of our "smaller" test machines and performance is quite good so far. Andy On Wed, Nov 22, 2017 at 11:22 AM, David Moss <admo...@gmail.com> wrote: Upgrades are application specific. You need to look at the logs for your current system and see if processor is maxing out of memory is swapping out to disk too much. 2GB RAM looks a bit small but that is irrelevant if your processor is at 100% all the time. You might also consider your disk access time. Faster disks might be a better buy if your processor and RAM look OK. David Moss From: John Sanders <johnn...@outlook.com> Sent: Wednesday, November 22, 2017 10:40:38 AM To: users@jena.apache.org Subject: Advice on hardware upgrade Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all.
Re: Advice on hardware upgrade
On 22/11/17 12:35, Laura Morales wrote: Fuseki uses TDB which relies on memory mapped files Do you know if the same "memory mapped files" applies to other backends too, for example HDT? You'll have to check each of the backends - it's an implementation issue. Andy
Re: Advice on hardware upgrade
On 22/11/17 00:40, John Sanders wrote: Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all. Hi John, Are you running a 32 bit java? And some of the replies assume you are using TDB, and not, for example, keeping data in files read in at startup. If TDB: Some more RAM and a 64 bit java will help a lot. This is true even if the database is smaller than (guess) a 1Gb. TDB/32-bit mode has to do it's own file caching and it's not really very fast. If files: Then it's all in RAM currently. A faster CPU. And a new CPU will probably have faster RAM. Again, getting to 64 bit java may help as well. Threads & core: Fuseki runs each HTTP request on one thread. If the server is having to serve multiple requests at the same time, then more (real) threads upto the number of really concurrent requests should help. Andy
Re: Advice on hardware upgrade
> Fuseki uses TDB which relies on memory mapped files Do you know if the same "memory mapped files" applies to other backends too, for example HDT?
Re: Advice on hardware upgrade
i have noticed that a single fuseki instance spans quite a number of worker process (~32-35) on one of our root servers ( x86_64 GNU/Linux) with 8 cores and 128gb ram + ssd. does jena fuseki /tdb take full advantage of the extras cores on full load with these workers? On Wed, Nov 22, 2017 at 11:22 AM, David Moss <admo...@gmail.com> wrote: > Upgrades are application specific. You need to look at the logs for your > current system and see if processor is maxing out of memory is swapping out > to disk too much. 2GB RAM looks a bit small but that is irrelevant if your > processor is at 100% all the time. You might also consider your disk access > time. Faster disks might be a better buy if your processor and RAM look OK. > > David Moss > > From: John Sanders <johnn...@outlook.com> > Sent: Wednesday, November 22, 2017 10:40:38 AM > To: users@jena.apache.org > Subject: Advice on hardware upgrade > > Hi, I'm running a Fuseki server on a rather small server. I'm willing to > upgrade it a little bit (since it's handling a lot of requests) so I was > wondering which single component I could upgrade to get the best possible > return. This I suppose boils down to either more RAM or a better CPU. > Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have > some money to spend on it, would I be better buying more RAM or a better > CPU? In the second case (a better CPU), would Fuseki benefit more from a > faster one (higher frequency) or one with more cores/threads (I assume > Fuseki is a multi-threaded application)? Thank you all. -- --- Marco Neumann KONA
Re: Advice on hardware upgrade
Upgrades are application specific. You need to look at the logs for your current system and see if processor is maxing out of memory is swapping out to disk too much. 2GB RAM looks a bit small but that is irrelevant if your processor is at 100% all the time. You might also consider your disk access time. Faster disks might be a better buy if your processor and RAM look OK. David Moss From: John Sanders <johnn...@outlook.com> Sent: Wednesday, November 22, 2017 10:40:38 AM To: users@jena.apache.org Subject: Advice on hardware upgrade Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all.
Re: Advice on hardware upgrade
Upgrading the RAM would have more benefit. Fuseki uses TDB which relies on memory mapped files so if you can provide more RAM more of your data can be kept in memory by the OS. Bear in mind that this memory is off-heap so if you do upgrade your RAM there should be no need to set the heap size larger since the additional RAM Will be utilised by the OS to cache more of your data in memory. Another hardware upgrade that you did not mention would be to your storage. If you frequently load new data from disk then providing high-performance storage i.e. SSD/flash device Will give you significant performance gains for those operations. However, as a general performance upgrade I would strongly recommend more RAM Rob On 22/11/2017, 00:40, "John Sanders"wrote: Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all.
Advice on hardware upgrade
Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all.
Advice on hardware upgrade
Hi, I'm running a Fuseki server on a rather small server. I'm willing to upgrade it a little bit (since it's handling a lot of requests) so I was wondering which single component I could upgrade to get the best possible return. This I suppose boils down to either more RAM or a better CPU. Currently the server is an old Pentium4 3GHz with 2gb of RAM, so if I have some money to spend on it, would I be better buying more RAM or a better CPU? In the second case (a better CPU), would Fuseki benefit more from a faster one (higher frequency) or one with more cores/threads (I assume Fuseki is a multi-threaded application)? Thank you all. Sent using Guerrillamail.com Block or report abuse: https://www.guerrillamail.com//abuse/?a=VFJxFx4gSbEbiUC14H8cehGJQtiX