openlink / virtuoso-opensource

Virtuoso is a high-performance and scalable Multi-Model RDBMS, Data Integration Middleware, Linked Data Deployment, and HTTP Application Server Platform
https://vos.openlinksw.com
Other
854 stars 211 forks source link

configuring virtuoso.ini #177

Open mrsaniat opened 10 years ago

mrsaniat commented 10 years ago

Hi, I have installed virtuoso with default parameters, and found that the virtuoso.ini file has this parameter set-by-default:

NumberOfBuffers = 340000 MaxDirtyBuffers = 250000 As far as i understood, this parameters depends on the system resources available to virtuoso.

I would like to know, (Q1) if I install virtuoso in my local machine and manually increase the size of the system memory, will the parameters change automatically ? Or I also have to change them manually ?

(Q2) If I intend to use a linux cloud instance and host my virtuoso there, what would be the case then ? I know virtuoso offers amazon ec2 instance, but I would like to know the response in this case as well.

HughWilliams commented 10 years ago

I presume you have installed the Virtuoso EC2 AMI http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtuosoEC2AMI , as that is the onlly instance for which the Buffers would be set to that value as we recommend a minimum 4GB AMI instance.

Regardless of where you run Virtuoso the memory requirements are the same and can be configured as detailed at http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtRDFPerformanceTuning , defaults for various memory configurations are also commented out in the INI file ...

mrsaniat commented 10 years ago

Hi HughWilliams, I actually have installed the VOS in my local machine, and while looking over the virtuoso.ini file I found that it was pre-configured.

My question was: If i now manually change the system memory, will the virtuoso.ini file tune itself automatically (as it did during initial set-up), or that have to be changed manually by me.

And also what will happen in case of cloud instance ? Defaults will be set, but what if system resource change on the fly ?

HughWilliams commented 10 years ago

The server has to be tune manually in all cases and if the system resource changed on the fly then the server would have to be manually changed in the INI file and Virtuoso restarted ...

mrsaniat commented 10 years ago

Hi, The answer was spot on ! Thanks.

Another thing brings confusion into my mind is: In my virtuoso.ini file there are multiple values assigned for NumberOfBuffers and MaxDirtyBuffer. One is in the middle (for 4 GB system memory) and another at the bottom, that is probably the default value. I would like to know which one is on effect ?

Note: I have not tuned the virtuoso.ini file yet, its installed/running by default.

;; Uncomment next two lines if there is 2 GB system memory free ;NumberOfBuffers = 170000 ;MaxDirtyBuffers = 130000 ;; Uncomment next two lines if there is 4 GB system memory free NumberOfBuffers = 340000 MaxDirtyBuffers = 250000 ;; Uncomment next two lines if there is 8 GB system memory free ;NumberOfBuffers = 680000 ;MaxDirtyBuffers = 500000 ;; Uncomment next two lines if there is 16 GB system memory free ;NumberOfBuffers = 1360000 ;MaxDirtyBuffers = 1000000 ;; Uncomment next two lines if there is 32 GB system memory free ;NumberOfBuffers = 2720000 ;MaxDirtyBuffers = 2000000 ;; Uncomment next two lines if there is 48 GB system memory free ;NumberOfBuffers = 4000000 ;MaxDirtyBuffers = 3000000 ;; Uncomment next two lines if there is 64 GB system memory free ;NumberOfBuffers = 5450000 ;MaxDirtyBuffers = 4000000 ;; ;; Note the default settings will take very little memory ;; but will not result in very good performance ;; NumberOfBuffers = 10000 MaxDirtyBuffers = 6000

openlink commented 10 years ago

On 14 May 2014 12:37, mrsaniat notifications@github.com wrote:

Another thing brings confusion into my mind is: In my virtuoso.ini file there are multiple values assigned for NumberOfBuffers and MaxDirtyBuffer. One is in the middle (for 4 GB system memory) and another at the bottom, that is probably the default value. I would like to know which one is on effect ?

Hi,

Based on a quick experiment here, I think the first one wins. However, you can make it tell you by either

HTH,

~Tim

Tim Haynes Product Development Consultant OpenLink Software http://www.openlinksw.com/ http://twitter.com/openlink

mrsaniat commented 10 years ago

I have developed a shell script which can change the virtuoso.ini file on the fly whenever the system resource changes. But according to my understanding, to take effect the changes, I have to restart the virtuoso server. I am working from shell script, and what would be the way to restart virtuoso from a script ?

As you can understand, I wont like to put any manual input, the shell script alone should be able to restart the server upon certain condition is met (i.e.: when virtuoso.ini changes).

openlink commented 10 years ago

On 26 May 2014 12:29, mrsaniat notifications@github.com wrote:

I have developed a shell script which can change the virtuoso.ini file on the fly whenever the system resource changes. But according to my understanding, to take effect the changes, I have to restart the virtuoso server. I am working from shell script, and what would be the way to restart virtuoso from a script ?

Hi,

Your first port of call should be the init.d script https://github.com/openlink/virtuoso-opensource/blob/develop/7/debian/init.dwhich might save you some effort.

Details: the current pid is to be found in the virtuoso.lck file,so you can do things like zsh/scr, vbv7 10:47AM db/ % . ./virtuoso.lck zsh/scr, vbv7 10:47AM db/ % kill -0 $VIRT_PID; echo $? 0 zsh/scr, vbv7 10:47AM db/ % kill $VIRT_PID zsh/scr, vbv7 10:47AM db/ % sleep 20 zsh/scr, vbv7 10:47AM db/ % kill -0 $VIRT_PID; echo $? kill: kill 739 failed: no such process zsh: exit 1 1 zsh/scr, vbv7 10:47AM db/ %

HTH,

~Tim

Tim Haynes Product Development Consultant OpenLink Software http://www.openlinksw.com/ http://twitter.com/openlink