Incremento uso de memoria por sqlservr.exe

02/04/2004 - 13:37 por Manel Serrano | Informe spam
Hola a todos,

A ver... me ocurre algo realmente curioso,

El caso es que revisando el administrador de tareas he observado que el
"sqlservr.exe" incrementa el consumo de memoria de una forma alarmante en
cada consulta que ejecuto o inserción de datos, hasta el punto de llegar a
bloquear el servidor. Sirva como dato que al iniciar el servidor consume
unas 30 mb y ha llegado a consumir unos 330 mb.

¿Alguien tiene idea de que es lo que está produciendo esto?

Gracias de antemano a todos

un saludo

manel

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
02/04/2004 - 14:44 | Informe spam
Hola, bueno Sql consume memoria y luego no la devuelve al SO :( por eso es
importante tener muy pero muy bien configurado las propiedades de memoria de
tu Servidor SqlServer, yo por regla le dejo solo usar hasta un maximo de 85%
del total de mi ram, el resto se lo doy al SO :-D

Claro esto que te digo es en un servidor donde solo tengo SqlServer, de
tener mas cosas habria que hacer otro analisis ;)

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Manel Serrano" escribió en el mensaje
news:
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
#2 Gustavo Larriera [MVP SQL]
02/04/2004 - 15:28 | Informe spam
No estoy de acuerdo con eso de que "Sql consume memoria y luego no la
devuelve al SO". Justamente uno de los principales cambios que se le
hicieron al motor relacional fueron para que el ajuste dinámico de memoria
de SQL Server fuera cooperativo con el sistema operativo.

Lo que es habitual sí es que una aplicación o una query mal programada (por
ejemplo, una que haga muchos bloqueos o que cree objetos temporales) obligue
al SQL Server a usar mucha memoria, lo que también provoca paginación del
sistema operativo.

En los casos donde puede ser necesario hacer fine-tuning del uso de memoria
es cuando el SQL Server debe coexistir con ciertas aplicaciones (Exchange es
un ejemplo de servicio que se recomienda no esté en el mismo servidor que
SQL, por ejemplo, debido a la comptenecia mutua que hacen por el uso de
memoria).

De los Books Online:

When SQL Server is using memory dynamically, it queries the system
periodically to determine the amount of free physical memory available. SQL
Server grows or shrinks the buffer cache to keep free physical memory
between 4 MB and 10 MB depending on server activity. This prevents Microsoft
Windows NT® 4.0 or Windows® 2000 from paging. If there is less memory free,
SQL Server releases memory to Windows NT 4.0 or Windows 2000 that usually
goes on the free list. If there is more memory free, SQL Server recommits
memory to the buffer cache. SQL Server adds memory to the buffer cache only
when its workload requires more memory; a server at rest does not grow its
buffer cache.
Allowing SQL Server to use memory dynamically is the recommended
configuration; however, you can set the memory options manually and override
SQL Server's ability to use memory dynamically. Before you set the amount of
memory for SQL Server, determine the appropriate memory setting by
subtracting from the total physical memory the memory required for Windows
NT 4.0 or Windows 2000 and any other instances of SQL Server (and other
system uses, if the computer is not wholly dedicated to SQL Server). This is
the maximum amount of memory you can assign to SQL Server.


Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm

Books Online (BOL) de SQL Server disponibles en:
http://www.microsoft.com/sql/techin.../books.asp

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.


"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in message
news:
Mostrar la cita
de
Mostrar la cita
85%
Mostrar la cita
en
Mostrar la cita
a
Mostrar la cita
#3 Maximiliano D. A.
02/04/2004 - 15:51 | Informe spam
Que haces Gux!! lo que decis es mitad verdad mitad falso!! verdad porque lo
dice el manual , falso porque en la realidad no es tan asi.

Y lo probe mas de mil veces, eje:

Servidor 2GB RAM
SO: Windows NT 4.0 Server
Sql: 2000 Std SP3

Memoria maxima 1.8GB

Memoria minima 64MB

Bien lleno la ram o sea hago que Sql la consuma, saco a todos los usuarios y
sorpresa!! no baja chee :(


;) o sea el manual dice eso pero a mi en ninguna maquina me paso eso, sino
todo lo contrario, si no matas el servicio no livera RAM al SO

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:
Mostrar la cita
(por
Mostrar la cita
obligue
Mostrar la cita
memoria
Mostrar la cita
es
Mostrar la cita
SQL
Mostrar la cita
Microsoft
Mostrar la cita
free,
Mostrar la cita
only
Mostrar la cita
override
Mostrar la cita
of
Mostrar la cita
is
Mostrar la cita
no
Mostrar la cita
message
Mostrar la cita
es
Mostrar la cita
memoria
Mostrar la cita
el
Mostrar la cita
llegar
Mostrar la cita
consume
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
#4 Adrian D. Garcia
02/04/2004 - 16:41 | Informe spam
Coincido con Maximiliano,
SQL Server mientras tenga memoria disponible crece pero luego no la libera
tan facilmente ya que no detecta en la forma que uno espera que el sistema
se esta quedando con poca memoria para liberar sus buffers y paginas que
tienen poco uso.
Actualmente me enfrente con el mismo problema en 3 servidores que convivian
una aplicacion ASP.NET, IIS y SQL Server en donde SQL Server se llegaba a
"comer" mas del 70% de la memoria generando errores de "Out of Memory" en la
aplicaicon ASP.NET. El SQL Server se utilizaba en este caso para realizar
transacciones y no consultas y estaba ocupando mas de 1GB de RAM para el
solo.

Saludos

Adrian D. Garcia
NDSoft
MCSD
"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:
Mostrar la cita
lo
Mostrar la cita
y
Mostrar la cita
memoria
Mostrar la cita
del
Mostrar la cita
(Exchange
Mostrar la cita
que
Mostrar la cita
usually
Mostrar la cita
recommits
Mostrar la cita
its
Mostrar la cita
amount
Mostrar la cita
Windows
Mostrar la cita
This
Mostrar la cita
y
Mostrar la cita
eso
Mostrar la cita
de
Mostrar la cita
de
Mostrar la cita
alarmante
Mostrar la cita
#5 Gustavo Larriera [MVP SQL]
02/04/2004 - 16:50 | Informe spam
Cómo estás Maxi!!! todo bien por acá...

El tema es asi, en pocas palabras: La memoria usada no es liberada
inmediatamente a menos que el SO necesite los recursos. Mientras no ocurra
eso, el SQL Server los mantiene por las dudas. Pero podés estar seguro que
reacciona cooperativamente si el SO requiere.

Te lo puedo afirmar con cientos de casos de soporte técnico que debo tratar
dia a día en data centers de muy alto porte.

Un abrazo, portate bien :-)
gux

Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm

Books Online (BOL) de SQL Server disponibles en:
http://www.microsoft.com/sql/techin.../books.asp

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.


"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in message
news:
Mostrar la cita
lo
Mostrar la cita
y
Mostrar la cita
memoria
Mostrar la cita
del
Mostrar la cita
(Exchange
Mostrar la cita
que
Mostrar la cita
usually
Mostrar la cita
recommits
Mostrar la cita
its
Mostrar la cita
amount
Mostrar la cita
Windows
Mostrar la cita
This
Mostrar la cita
y
Mostrar la cita
eso
Mostrar la cita
de
Mostrar la cita
de
Mostrar la cita
alarmante
Mostrar la cita
Ads by Google
Search Busqueda sugerida