Showing posts with label reserve. Show all posts
Showing posts with label reserve. Show all posts

Wednesday, March 21, 2012

MemToLeave area! How to monitor?

Gurus,
Occasionally I get the error of "WARNING: Failed to reserve contiguous
memory of Size= 65536."
What is the unit for this size, is it bytes or KB? Additionally,
I have set up 511 MB for MemToLeave area by adding -g384 for Sql2k SP3a on
AWE enabled system. I have total of 16 GB of RAM, of which 14 GB is set up
maximum for Sql server.
If I look at Perfmon counter of Process->Private bytes for sql server
process it gives me 224 MB.
If I look at sqlserver.exe process on task manager it gives me 215MB.
If I look at DBCC memorystatus, OS in use, it gives me 12 MB.
I would like to know, How can I calculate exactly how much memory is being
assigned and how much in use from MemToLeave area by looking at above
mentioned counters or any other perfmon or dbcc counters?
I really appreciate any input on this matter.Please, take a look at "Inside SQL Server 2000's Memory Management Facilities" by Ken Henderson:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp
"... None of the tools you typically use to inspect application memory use (Task Manager, Perfmon/Sysmon, etc.) show the amount of AWE memory used by individual processes. There's no indication of the amount of AWE memory used by each process, nor is this memory included in the working set size reported for a given process ..."
Thanks,
-Ivan
--Original Message--
From: james
Posted At: Tuesday, February 28, 2006 6:52 AM
Posted To: microsoft.public.sqlserver.server
Conversation: MemToLeave area! How to monitor?
Subject: MemToLeave area! How to monitor?
Gurus,
Occasionally I get the error of "WARNING: Failed to reserve contiguous memory of Size= 65536."
What is the unit for this size, is it bytes or KB? Additionally,
I have set up 511 MB for MemToLeave area by adding -g384 for Sql2k SP3a on AWE enabled system. I have total of 16 GB of RAM, of which 14 GB is set up maximum for Sql server.
If I look at Perfmon counter of Process->Private bytes for sql server process it gives me 224 MB.
If I look at sqlserver.exe process on task manager it gives me 215MB.
If I look at DBCC memorystatus, OS in use, it gives me 12 MB.
I would like to know, How can I calculate exactly how much memory is being assigned and how much in use from MemToLeave area by looking at above mentioned counters or any other perfmon or dbcc counters?
I really appreciate any input on this matter.|||Thanks Ivan. I had already checked that article and also few other google
search but didn't get the answer.
<ivanpe@.online.microsoft.com> wrote in message
news:OenNh9IPGHA.3840@.TK2MSFTNGP14.phx.gbl...
> Please, take a look at "Inside SQL Server 2000's Memory Management
> Facilities" by Ken Henderson:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp
> "... None of the tools you typically use to inspect application memory use
> (Task Manager, Perfmon/Sysmon, etc.) show the amount of AWE memory used by
> individual processes. There's no indication of the amount of AWE memory
> used by each process, nor is this memory included in the working set size
> reported for a given process ..."
> Thanks,
> -Ivan
> --Original Message--
> From: james
> Posted At: Tuesday, February 28, 2006 6:52 AM
> Posted To: microsoft.public.sqlserver.server
> Conversation: MemToLeave area! How to monitor?
> Subject: MemToLeave area! How to monitor?
>
> Gurus,
> Occasionally I get the error of "WARNING: Failed to reserve contiguous
> memory of Size= 65536."
> What is the unit for this size, is it bytes or KB? Additionally,
> I have set up 511 MB for MemToLeave area by adding -g384 for Sql2k SP3a on
> AWE enabled system. I have total of 16 GB of RAM, of which 14 GB is set up
> maximum for Sql server.
> If I look at Perfmon counter of Process->Private bytes for sql server
> process it gives me 224 MB.
> If I look at sqlserver.exe process on task manager it gives me 215MB.
> If I look at DBCC memorystatus, OS in use, it gives me 12 MB.
> I would like to know, How can I calculate exactly how much memory is being
> assigned and how much in use from MemToLeave area by looking at above
> mentioned counters or any other perfmon or dbcc counters?
> I really appreciate any input on this matter.|||James,
The unit of measure in the message you list is bytes, not KB. Basically,
the memory mgr is failing to reserve 64KB of memory.
The numbers you report from the various monitoring tools don't sound
surprising -- they all measure different things. For example,
Process:Private Bytes is a measure of _committed_ virtual memory, not
reserved. -G controls the region set aside for MTL, not committed or
reserved -- free. That virtual memory is reserved and committed as needed
by the various memory consumers running inside the SQL Server process.
Also, on SS2K, AWE can't be used for anything except caching data and index
pages. Regular MTL allocations never come from AWE.
Keep in mind that the MTL region is really not a region at all but just
refers to the memory left over once the BPool takes what it needs. It's the
unused virtual memory in the process's virtual address space. -G can grow
or shrink this area, but it basically only amounts to unused memory within
the process.
Allocations by external consumers (COM objects, xprocs (usually), OLEDB
providers, etc.) come from MTL. Also, allocations by the server itself that
are >8KB are serviced from MTL rather than the BPool. This just means that,
at some level, they call VirtualAlloc to allocate VM directly from Windows
rather than using pages already allocated to the BPool.
Accompanying the error message you list should be the equivalent of DBCC
MEMORYSTATUS output. This is more relevant than running the command
yourself because it's taken at the exact moment the error occurred. If I
were you, I'd have a look at the various buckets listed in that report to
see if any of them seem high. Keep in mind that many of them are page
counts, not byte counts, so you need to multiply them by 8KB to get the
exact byte count in use.
Also keep in mind that this error can be caused by extreme fragmentation as
well as over-allocation of memory. IOW, you could have well more than 64KB
available within the process, but no single contiguous block of that size or
larger.
If, after you've worked through the above, you still can't figure out why
the reservation is failing, you might want to contact PSS to help you
troubleshoot it further. They deal with these all the time and should be
able to get you fixed up in no time.
HTH,
-kh
"james" <kush@.brandes.com> wrote in message
news:%23hTPNHLPGHA.720@.TK2MSFTNGP14.phx.gbl...
> Thanks Ivan. I had already checked that article and also few other google
> search but didn't get the answer.
> <ivanpe@.online.microsoft.com> wrote in message
> news:OenNh9IPGHA.3840@.TK2MSFTNGP14.phx.gbl...
>> Please, take a look at "Inside SQL Server 2000's Memory Management
>> Facilities" by Ken Henderson:
>> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp
>> "... None of the tools you typically use to inspect application memory
>> use (Task Manager, Perfmon/Sysmon, etc.) show the amount of AWE memory
>> used by individual processes. There's no indication of the amount of AWE
>> memory used by each process, nor is this memory included in the working
>> set size reported for a given process ..."
>> Thanks,
>> -Ivan
>> --Original Message--
>> From: james
>> Posted At: Tuesday, February 28, 2006 6:52 AM
>> Posted To: microsoft.public.sqlserver.server
>> Conversation: MemToLeave area! How to monitor?
>> Subject: MemToLeave area! How to monitor?
>>
>> Gurus,
>> Occasionally I get the error of "WARNING: Failed to reserve contiguous
>> memory of Size= 65536."
>> What is the unit for this size, is it bytes or KB? Additionally,
>> I have set up 511 MB for MemToLeave area by adding -g384 for Sql2k SP3a
>> on AWE enabled system. I have total of 16 GB of RAM, of which 14 GB is
>> set up maximum for Sql server.
>> If I look at Perfmon counter of Process->Private bytes for sql server
>> process it gives me 224 MB.
>> If I look at sqlserver.exe process on task manager it gives me 215MB.
>> If I look at DBCC memorystatus, OS in use, it gives me 12 MB.
>> I would like to know, How can I calculate exactly how much memory is
>> being assigned and how much in use from MemToLeave area by looking at
>> above mentioned counters or any other perfmon or dbcc counters?
>> I really appreciate any input on this matter.
>

Memory Warning

I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size= 65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
HillaireThere are certain operations that can only happen in a contiguous block of
memory and this is done in what is called the MemToLeave area. By default
you only have about 256MB allocated for this area and you must have run low.
If this repeats you might considering adding the -g parameter to SQL Server
upon startup and reserve more than 256MB. Have a look at "startup options"
in BooksOnLine for more details.
--
Andrew J. Kelly SQL MVP
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
> I have the following entries in my sql error log:
> WARNING: Failed to reserve contiguous memory of Size=> 65536.
> Buffer Distribution: Stolen=4294940950 Free=112
> Procedures=109559
> Inram=0 Dirty=1167 Kept=0
> I/O=0, Latched=206, Other=123974
> Buffer Counts: Commited=208672 Target=208672
> Hashed=125347
> InternalReservation=346 ExternalReservation=58 Min
> Free=128
> Procedure Cache: TotalProcs=10484 TotalPages=109559
> InUsePages=14527
> Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
> OS Committed=36671
> OS In Use=29121
> Query Plan=108697 Optimizer=0
> General=3420
> Utilities=6 Connection=68
> Global Memory Objects: Resource=1808 Locks=77
> SQLCache=653 Replication=2
> LockBytes=2 ServerGlobal=46
> Xact=18
> Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
> Available=165320
> Can anyone help diagnose the problem?
> Thanks,
> Hillaire|||What service pack are on for SQL Server? See if this applies to you:
http://support.microsoft.com/default.aspx?scid=kb;en-us;818095
--
HTH,
Vyas, MVP (SQL Server)
http://vyaskn.tripod.com/
Is .NET important for a database professional?
http://vyaskn.tripod.com/poll.htm
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size=65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
Hillaire

Memory Warning

I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size=
65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
Hillaire
There are certain operations that can only happen in a contiguous block of
memory and this is done in what is called the MemToLeave area. By default
you only have about 256MB allocated for this area and you must have run low.
If this repeats you might considering adding the -g parameter to SQL Server
upon startup and reserve more than 256MB. Have a look at "startup options"
in BooksOnLine for more details.
Andrew J. Kelly SQL MVP
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
> I have the following entries in my sql error log:
> WARNING: Failed to reserve contiguous memory of Size=
> 65536.
> Buffer Distribution: Stolen=4294940950 Free=112
> Procedures=109559
> Inram=0 Dirty=1167 Kept=0
> I/O=0, Latched=206, Other=123974
> Buffer Counts: Commited=208672 Target=208672
> Hashed=125347
> InternalReservation=346 ExternalReservation=58 Min
> Free=128
> Procedure Cache: TotalProcs=10484 TotalPages=109559
> InUsePages=14527
> Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
> OS Committed=36671
> OS In Use=29121
> Query Plan=108697 Optimizer=0
> General=3420
> Utilities=6 Connection=68
> Global Memory Objects: Resource=1808 Locks=77
> SQLCache=653 Replication=2
> LockBytes=2 ServerGlobal=46
> Xact=18
> Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
> Available=165320
> Can anyone help diagnose the problem?
> Thanks,
> Hillaire
|||What service pack are on for SQL Server? See if this applies to you:
http://support.microsoft.com/default...b;en-us;818095
HTH,
Vyas, MVP (SQL Server)
http://vyaskn.tripod.com/
Is .NET important for a database professional?
http://vyaskn.tripod.com/poll.htm
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size=
65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
Hillaire

Memory Warning

I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size=
65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
HillaireThere are certain operations that can only happen in a contiguous block of
memory and this is done in what is called the MemToLeave area. By default
you only have about 256MB allocated for this area and you must have run low.
If this repeats you might considering adding the -g parameter to SQL Server
upon startup and reserve more than 256MB. Have a look at "startup options"
in BooksOnLine for more details.
Andrew J. Kelly SQL MVP
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
> I have the following entries in my sql error log:
> WARNING: Failed to reserve contiguous memory of Size=
> 65536.
> Buffer Distribution: Stolen=4294940950 Free=112
> Procedures=109559
> Inram=0 Dirty=1167 Kept=0
> I/O=0, Latched=206, Other=123974
> Buffer Counts: Commited=208672 Target=208672
> Hashed=125347
> InternalReservation=346 ExternalReservation=58 Min
> Free=128
> Procedure Cache: TotalProcs=10484 TotalPages=109559
> InUsePages=14527
> Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
> OS Committed=36671
> OS In Use=29121
> Query Plan=108697 Optimizer=0
> General=3420
> Utilities=6 Connection=68
> Global Memory Objects: Resource=1808 Locks=77
> SQLCache=653 Replication=2
> LockBytes=2 ServerGlobal=46
> Xact=18
> Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
> Available=165320
> Can anyone help diagnose the problem?
> Thanks,
> Hillaire|||What service pack are on for SQL Server? See if this applies to you:
http://support.microsoft.com/defaul...kb;en-us;818095
--
HTH,
Vyas, MVP (SQL Server)
http://vyaskn.tripod.com/
Is .NET important for a database professional?
http://vyaskn.tripod.com/poll.htm
"kelly" <anonymous@.discussions.microsoft.com> wrote in message
news:08d501c46e65$82f1e660$a601280a@.phx.gbl...
I have the following entries in my sql error log:
WARNING: Failed to reserve contiguous memory of Size=
65536.
Buffer Distribution: Stolen=4294940950 Free=112
Procedures=109559
Inram=0 Dirty=1167 Kept=0
I/O=0, Latched=206, Other=123974
Buffer Counts: Commited=208672 Target=208672
Hashed=125347
InternalReservation=346 ExternalReservation=58 Min
Free=128
Procedure Cache: TotalProcs=10484 TotalPages=109559
InUsePages=14527
Dynamic Memory Manager: Stolen=83213 OS Reserved=40456
OS Committed=36671
OS In Use=29121
Query Plan=108697 Optimizer=0
General=3420
Utilities=6 Connection=68
Global Memory Objects: Resource=1808 Locks=77
SQLCache=653 Replication=2
LockBytes=2 ServerGlobal=46
Xact=18
Query Memory Manager: Grants=1 Waiting=0 Maximum=165378
Available=165320
Can anyone help diagnose the problem?
Thanks,
Hillaire

Friday, March 9, 2012

Memory Reserve

Hi All
I just want to know when some queries has completed on SQL 2000 whether the
memory that reserved for it will release after completion the process.
In current sql server which Im using having major issue with memory usage.
It is catching memory when some process is happening, but it won't release
that memory even after hours of that process took place.
Please send some advise
Thaks in advance
JanakaReleasing the memory after a query has executed would defeat the whole purpose of caching data. We
do not want that. I suggest you investigate the issue further and see if it is a real problem to you
(how do you determine that the behavior of SQL Server is a problem), and if for instance setting a
max for memory solves your problem. Have a look at
INF: SQL Server Memory Usage
http://support.microsoft.com/default.aspx?scid=kb;en-us;q321363
http://www.mssqlserver.com/faq/troubleshooting-memoryleak.asp
--
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"Janaka Sampath" <janakaj@.lankaequities.com> wrote in message
news:uubaDh27FHA.3976@.TK2MSFTNGP15.phx.gbl...
> Hi All
>
> I just want to know when some queries has completed on SQL 2000 whether the
> memory that reserved for it will release after completion the process.
> In current sql server which Im using having major issue with memory usage.
> It is catching memory when some process is happening, but it won't release
> that memory even after hours of that process took place.
>
> Please send some advise
> Thaks in advance
> Janaka
>

Memory Reserve

Hi All
I just want to know when some queries has completed on SQL 2000 whether the
memory that reserved for it will release after completion the process.
In current sql server which Im using having major issue with memory usage.
It is catching memory when some process is happening, but it won't release
that memory even after hours of that process took place.
Please send some advise
Thaks in advance
Janaka
Releasing the memory after a query has executed would defeat the whole purpose of caching data. We
do not want that. I suggest you investigate the issue further and see if it is a real problem to you
(how do you determine that the behavior of SQL Server is a problem), and if for instance setting a
max for memory solves your problem. Have a look at
INF: SQL Server Memory Usage
http://support.microsoft.com/default...;en-us;q321363
http://www.mssqlserver.com/faq/troub...memoryleak.asp
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"Janaka Sampath" <janakaj@.lankaequities.com> wrote in message
news:uubaDh27FHA.3976@.TK2MSFTNGP15.phx.gbl...
> Hi All
>
> I just want to know when some queries has completed on SQL 2000 whether the
> memory that reserved for it will release after completion the process.
> In current sql server which Im using having major issue with memory usage.
> It is catching memory when some process is happening, but it won't release
> that memory even after hours of that process took place.
>
> Please send some advise
> Thaks in advance
> Janaka
>

Memory Reserve

Hi All
I just want to know when some queries has completed on SQL 2000 whether the
memory that reserved for it will release after completion the process.
In current sql server which Im using having major issue with memory usage.
It is catching memory when some process is happening, but it won't release
that memory even after hours of that process took place.
Please send some advise
Thaks in advance
JanakaReleasing the memory after a query has executed would defeat the whole purpo
se of caching data. We
do not want that. I suggest you investigate the issue further and see if it
is a real problem to you
(how do you determine that the behavior of SQL Server is a problem), and if
for instance setting a
max for memory solves your problem. Have a look at
INF: SQL Server Memory Usage
http://support.microsoft.com/defaul...b;en-us;q321363
http://www.mssqlserver.com/faq/trou...-memoryleak.asp
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"Janaka Sampath" <janakaj@.lankaequities.com> wrote in message
news:uubaDh27FHA.3976@.TK2MSFTNGP15.phx.gbl...
> Hi All
>
> I just want to know when some queries has completed on SQL 2000 whether th
e
> memory that reserved for it will release after completion the process.
> In current sql server which Im using having major issue with memory usage.
> It is catching memory when some process is happening, but it won't release
> that memory even after hours of that process took place.
>
> Please send some advise
> Thaks in advance
> Janaka
>