How can I configure Virtuoso for maximum performance with available memory?

Virtuoso INI file settings

When running with large data sets, the Virtuoso process should be configured to use between 2/3 and 3/5 of system RAM.

See Virtuoso configuration file parameters NumberOfBuffers and MaxDirtyBuffers for details.

Each buffer consumes 8 KB. Typical sizes for the NumberOfBuffers? and MaxDirtyBuffers? (3/4 of NumberOfBuffers?) parameters at various memory sizes are as follows, :

System Memory NumberOfBuffers? MaxDirtyBuffers?
default installation 2000 1200
2 GB 170000 130000
4 GB 340000 250000
8 GB 680000 500000
16 GB 1360000 1000000
32 GB 2720000 2000000
48 GB 4000000 3000000
64 GB 5450000 4000000


For Linux users only, there is a kernel tuning parameter called "swappiness" that controls how much the kernel favors swap over RAM.

When hosting large data sets, it is recommended that this parameter be changed from its default value of 60 to something closer to 10, to reduce the amount of swapping that takes place on the server. Useful tidbits regarding swappiness include:

  • The swappiness setting is found in the file /proc/sys/vm/swappiness.
  • The command /sbin/sysctl vm.swappiness can be used to view its setting.
  • The command /sbin/sysctl -w vm.swappiness=10 can be used to change its value.
  • Adding vm.swappiness = 10 to the file /etc/sysctl.conf will force the value to be set at machine boot time.