#1  
Old 6th November 2019, 08:03 PM
David Rose
 
Posts: n/a
Default Memory under 64 bit server

I've got a machine here which has physically 16 GB RAM. Windows task
manager shows "In use" 11.4 GB and "Committed" 13.2/31.9 GB

The max RAM setting in NX Server is -1 and the Block Cache Available is
13 GB.

What does this mean in terms of memory - as the cache fills up, is it
potentially going to be swapped to disk or is it going to grab more
physical memory, resulting in other stuff being swapped to disk and in
either case, won't this result in a reduction in performance ?

Should I be telling my customers to not use a Max RAM setting of -1, but
to set it to something like half the physical RAM ?

Any suggestions and help understanding would be appreciated.

David
  #2  
Old 6th November 2019, 10:18 PM
Eivind Bakkestuen [NDD]
 
Posts: n/a
Default Re: Memory under 64 bit server

> What does this mean in terms of memory - as the cache fills up, is it
> potentially going to be swapped to disk or is it going to grab more
> physical memory, resulting in other stuff being swapped to disk and
> in either case, won't this result in a reduction in performance ?


The MaxRAM setting should be set so that NexusDB Server has as much
block cache as possible (up to the size of your database you want to
cache, which would include block cache for memory tables if you use
them), but not so high that it impacts other processes. In my
experience, customers rarely run only one thing on a machine these days.

> Should I be telling my customers to not use a Max RAM setting of -1,
> but to set it to something like half the physical RAM ?


Something like that will make sense, if the machine is not dedicated to
NexusDB alone.

Thorsten will give you a better answer; mine is the TL;DR version.

--
Eivind Bakkestuen [NDD]
  #3  
Old 7th November 2019, 01:36 AM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Memory under 64 bit server

MaxRAM -1 sets MaxRAM such that there should be enough physical memory left
over for the OS when all block cache is in use. This assumes the computer is
dedicated as a NexusDB Server.

If you already have 13.2 out of 16GB physical memory in use by other processes
before you even start using the NexusDB server, the machine is probably not
very suitable as a database server on top of whatever it is that it's already
doing.


David Rose wrote:

> I've got a machine here which has physically 16 GB RAM. Windows task manager
> shows "In use" 11.4 GB and "Committed" 13.2/31.9 GB
>
> The max RAM setting in NX Server is -1 and the Block Cache Available is 13 GB.
>
> What does this mean in terms of memory - as the cache fills up, is it
> potentially going to be swapped to disk or is it going to grab more physical
> memory, resulting in other stuff being swapped to disk and in either case,
> won't this result in a reduction in performance ?
>
> Should I be telling my customers to not use a Max RAM setting of -1, but to
> set it to something like half the physical RAM ?
>
> Any suggestions and help understanding would be appreciated.
>
> David


  #4  
Old 7th November 2019, 02:32 AM
David Rose
 
Posts: n/a
Default Re: Memory under 64 bit server

On 06/11/2019 14:36, Thorsten Engler [NDA] wrote:
> If you already have 13.2 out of 16GB physical memory in use by other processes
> before you even start using the NexusDB server, the machine is probably not
> very suitable as a database server on top of whatever it is that it's already
> doing.


Nah, this was one of our development machines, but it highlighted the
issue and we realised we needed to know what was happening so we could
give our customers the best advice. Many run RDP and Nexus on the same
box. They tend to have loads of RAM but we just need to tell them how to
determine the setting. I've not managed to work out a good way to
calculate how much RAM a database could use. It certainly is way more
than the disk space the db occupies.

David

  #5  
Old 7th November 2019, 12:07 PM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Memory under 64 bit server

For best possible performance, you would need enough block cache for:

* all table files
* all concurrently open SQL resultset

during a transaction: all dirty blocks
during a snapshot transaction: all old blocks that have been replaced by other
transactions since the snapshot transaction was started
and during a restructure: twice the size of the to be restructured table

In addition, the server will be using memory outside the block cache, the major
usage of that is:

a) for data structures in relation to management of the block cache
b) during the execution of SQL joins that use a hash join: the memory required
to to store the generated hash table

David Rose wrote:

> On 06/11/2019 14:36, Thorsten Engler [NDA] wrote:
> > If you already have 13.2 out of 16GB physical memory in use by other
> > processes before you even start using the NexusDB server, the machine is
> > probably not very suitable as a database server on top of whatever it is
> > that it's already doing.

>
> Nah, this was one of our development machines, but it highlighted the issue
> and we realised we needed to know what was happening so we could give our
> customers the best advice. Many run RDP and Nexus on the same box. They tend
> to have loads of RAM but we just need to tell them how to determine the
> setting. I've not managed to work out a good way to calculate how much RAM a
> database could use. It certainly is way more than the disk space the db
> occupies.
>
> David


  #6  
Old 7th November 2019, 09:32 PM
David Rose
 
Posts: n/a
Default Re: Memory under 64 bit server

On 07/11/2019 01:07, Thorsten Engler [NDA] wrote:
> For best possible performance, you would need enough block cache for:


So how does one measure the peak demand ? Block Cache Available is how
much CAN be used, Block Cache used is, I believe, how much is in use
right now. What I need to measure is the peak that's been used since the
server started.
Many of our users are running on hosted solutions (e.g Azure etc) and
RAM can be expensive (upto £15 per GB per month) so they don't want to
add more than is needed, but at the same time, don't want to cut back if
it's going to hit performance.

David
  #7  
Old 8th November 2019, 12:12 AM
William O.
 
Posts: n/a
Default Re: Memory under 64 bit server

On 6/11/2019 8:03 pm, David Rose wrote:
> I've got a machine here which has physically 16 GB RAM. Windows task
> manager shows "In use" 11.4 GB and "Committed" 13.2/31.9 GB
>
> The max RAM setting in NX Server is -1 and the Block Cache Available is
> 13 GB.
>
> What does this mean in terms of memory - as the cache fills up, is it
> potentially going to be swapped to disk or is it going to grab more
> physical memory, resulting in other stuff being swapped to disk and in
> either case, won't this result in a reduction in performance ?
>
> Should I be telling my customers to not use a Max RAM setting of -1, but
> to set it to something like half the physical RAM ?
>
> Any suggestions and help understanding would be appreciated.
>
> David


Hi David,

We used to define a MAXRAM value that's not -1 on 64-bit nxServers since
they could potentially use up almost all available RAM and slowing down
the OS.

If they're using a dedicated machine for nxServer then I'd set MAXRAM to:
<available RAM> - <RAM for OS stability>

as a starting point then a little more for each additional service the
machine is also running. I don't think there's a definitive value you
should set - you'll need to tweak it for each nxserver.

The "Close Inactive Tables" and "Close Inactive Databases" options used
to help on low resource servers to free up some memory after heavy workload.



Kind regards,
Will
  #8  
Old 8th November 2019, 01:15 AM
Thorsten Engler [NDA]
 
Posts: n/a
Default Re: Memory under 64 bit server

Look at

a) the evicted counter
b) temporary storage written counter

if any of them goes up noticably, more memory would be helpful


David Rose wrote:

> On 07/11/2019 01:07, Thorsten Engler [NDA] wrote:
> > For best possible performance, you would need enough block cache for:

>
> So how does one measure the peak demand ? Block Cache Available is how much
> CAN be used, Block Cache used is, I believe, how much is in use right now.
> What I need to measure is the peak that's been used since the server started.
> Many of our users are running on hosted solutions (e.g Azure etc) and RAM can
> be expensive (upto £15 per GB per month) so they don't want to add more than
> is needed, but at the same time, don't want to cut back if it's going to hit
> performance.
>
> David




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Memory use and idle NexusDB server RichardLight nexusdb.public.support 6 8th August 2016 09:24 PM
Server memory .v. disk size David Rose nexusdb.public.support 5 4th August 2015 09:42 PM
AWE Server memory use behavior Frank de Groot nexusdb.public.support 2 25th June 2011 02:27 AM
logs for out of memory server crashes Dave Sellers Binaries 0 16th August 2009 03:28 AM
Server memory detection Hans Hasenack nexusdb.public.support 1 21st October 2006 08:19 AM


All times are GMT +11. The time now is 06:04 AM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.