Steve Judkins wrote:
This week I’m evaluating Virtuoso in shared web hosting environments.
The two environments I’m planning on evaluating are OpenSolaris
Containers (from Joyent) and Linux Virtual Private Servers (from
Slicehost). A entry priced Slice usually starts at 256Mb RAM and 10Gb
space and steps up from there. Both provide good entry level pricing
for LAMP developers and a grid architecture to scale as you grow. Any
shared insights on the following would be appreciated:
1) Anyone want to set my expectations for performance on this entry
level Slice?
2) Has anyone done previous work to simplify the setup process for
shared hosting? I’m only aware of the Debian packaging effort underway
as we speak.
(There's Gentoo packaging happening in the background too...)
Have you seen
http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/ODSInstallationEC2 ?
Should you so desire, it's quite easy to package Virtuoso for an OS:
a) configure --with-layout= as appropriate
b) check other --with-/--enable- options
c) basic process is just make; make install
d) init.d start/stop script
e) wrap it up in your OS's packaging SPEC/ebuild/whatever format.
3) I’ve noted the virtuoso.ini settings for indirectly controlling
memory consumption by setting ServerThreads, ServerThreadSize, etc. Are
there any other ways of tuning performance to accommodate machine
resources?
Parameter of choice: NumberOfBuffers. Use status() to find out how many
buffers you're using in practice and set it accordingly, up to a maximum
where it starts to swap out.
4) Anyone have real world statistics or estimates of memory
consumption in different scenarios just to define some rough upper and
lower bounds on memory requirements? (e.g. rough guides to how resources
scale with # users, sparql query volume, and RDF graphs)
I've just published a page [0] addressing the possible ways to configure
Virtuoso for scale - default, minimal and enterprise. That includes
corresponding approximate resource-consumption figures in each case also.
You could (probably should) set up a VMware / Parallels / VirtualBox
instance and assign it only 256M RAM, then you can benchmark your own
transaction profile against it.
5) I’m compiling on my local Linux for my OpenSolaris Container.
Looking at flags for i386 32bit Solaris, it looks like I can just SFTP
the same binaries I’ve built for Linux. Is that correct?
If your solaris has linux emulation, then *maybe*. Notably in [1] we
recommend using sun's C compiler (cc) rather than gcc on solaris, so you
might have libgcc dependency issues, amongst other things. It's worth an
experiment but is completely untested here - good luck!
~Tim
[0] http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtConfigScale
[1] http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSMake
--
Tim Haynes
Product Development Consultant
OpenLink Software
<http://www.openlinksw.com/>