World Servers
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[GUIA] Script - Reducir Consumo de Memoria MSSQL Server 2008.

2 participantes

Ir abajo

Tutorial [GUIA] Script - Reducir Consumo de Memoria MSSQL Server 2008.

Mensaje por ARIES 2014-04-09, 13:38

Saludos Amigos de World-Servers, en esta ocación, dejaré un pequeño script que nos ayudará a mantener nuestro Servidor de MSQQL 2008 (O Superiores - No probado con 2005) Con un consumo de memoria Estable.

Como muchos ya sabrán, los Servidores de MSSQL, realizan consultas casi de forma constante con la base de datos, para ello necesitan consumir cierta memoria RAM, pero al parecer... tampoco les gusta devolver la memoria que van consumiendo, llegando luego de cierto tiempo, a ocupar casi toda la memoria que puede obtener del servidor, ocacionando así, que nuestros servidores se pongan pesados y que se generen algunos problemas o demoras en las consultas de los ejecutables al sqlserver.

Bien, mucha gente opta por Reiniciar el Servidor de MSSQL, ya que al reiniciarlo, vuelve a comenzar con el mínimo de memoria, pero es tedioso tener que apagar los servidores para realizar este mantenimiento, asi que me puse en busqueda de como solventar este problema de forma más "automatizada" y navegando en la red, me encontré con un Script que realmente me dio excelentes resultados.

Que haremos entonces, bueno.. cada uno sabrá como manejar su servidor, pero les contaré como lo realizé yo...

En el administrador corporativo de Sql Server 2008, fui al Agente de Sql Server, y fui a Trabajos (jobs).
Creé un nuevo trabajo, al que le puse Categoria Local (Uncategorized) y de nombre "Liberar RAM"
Cree un nuevo Paso (Step) al que simplemente llamé "Liberar" y le coloqué el siguiente código:


Código:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
---------------------------------------
-- Se pone la memoria en un valor bajo para que la libere
EXEC sys.sp_configure N'max server memory (MB)', N'100';
GO
RECONFIGURE WITH OVERRIDE;
GO
CHECKPOINT;
GO

--Esperamos un minuto para darle tiempo a que la libere
WAITFOR DELAY '00:01:00';
GO

--Se vuelve a poner en el valor original (El maximo que le has asignado anteriormente)
EXEC sys.sp_configure N'max server memory (MB)', N'4000';
GO
RECONFIGURE WITH OVERRIDE;
GO
CHECKPOINT;
GO

sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO




Luego en Tiempo (Schedule) o coloqué para que se realizara diariamente, cada 2 horas.

Con este script, que describiré brevemente, modificaremos unos valores en el Sql Server que manejan el minimo y máximo de RAM, permitido por el servidor de MSSQL, las personas con mayor conocimiento del tema, sabrán que pueden modificar estos valores manualmente, asignandole al MSSQL cuanta memoria como máximo puede consumir, pero a vistas de que el manejo de datos es muy grande, no siempre es conveniente colocarle algún valor de máximo o mínimo, sino que siempre es recomendable, dejar que el sistema administre estos valores de forma automatizada.

Este Script accede a estas opciones y (en mi caso) reduce el máximo de memoria a consumir a 100MB, le da un tiempo de un minuto para que el MSSQL pueda liberar la memoria que esta usando "de más" una vez transcurrido el tiempo de espera, el servidor ya liberó la memoria que venia usando, y el script vuelve a asignarle la memoria que tenia por defecto (en mi caso 4Gb o lo casi equivalente 4000mb) para que el server pueda seguir trabajando normalmente.

Ahora, deberán leer el Script y entenderlo antes de aplicarlo, no caigan en el error de copiarlo tal cual está, por que podrán tener problemas, cada uno deberá, acorde a sus Servidores, asignarle el mínimo de memoria para la limpieza y el máximo de memoria nuevamente para que el servidor siga trabajando normalmente.

Las Lineas a modificar son las siguientes:
EXEC sys.sp_configure N'max server memory (MB)', N'100'; (Aqui asignaremos el mínimo para que se reduzca el consumo, el valor de ejemplo son 100mb)
EXEC sys.sp_configure N'max server memory (MB)', N'4000'; (Aqui asignaremos, el valor por defecto, o el máximo de memoria del servidor)

A mi me ha funcionado sin problemas, espero que les sea de utilidad para otros administradores, y que puedan mantener al MSSQL, dentro de un consumo que no les ocacione problemas o inconvenientes al resto del Server.

Saludos!
Información obtenida de: [Tienes que estar registrado y conectado para ver este vínculo]
ARIES
ARIES
Level ||
Level ||

Usuario Registrado Masculino Argentina No tienes ningun Trofeo No tienes ningun Premio No tienes ninguna Advertencia
Fusion™
Mensajes : 144
Cash Point : 20665
Prestigio : 115
Registro : 17/09/2013
Localización : Gualeguaychu, Entre Ríos
Edad : 40

http://www.comunidadfusion.com.ar

Volver arriba Ir abajo

Tutorial Re: [GUIA] Script - Reducir Consumo de Memoria MSSQL Server 2008.

Mensaje por HurryPoker 2014-10-03, 09:15

Virtual Memory Fix problem?


  Virtual memory is a common part of most operating systems on desktop computers. It has become so common because it provides a big benefit for users at a very low cost.




When your physical RAM fills up, it desperately needs another kind of temporary storage to be able to run your applications. Therefore, it creates a virtual memory right on your hard disk to satisfy that need. Data that is stored on the hard disk is stored in sectors, however, to the Memory Management Unit (MMU) of the Operating System, it is seen as though it is main memory. Before an application requests to run, the swap file is checked and if the data required by the application is found there, then it copies it over to memory first before executing it. Virtual memory is an excellent way of utilizing more memory than is physically available. Moving and swapping data between the physical memory and hard disk via the system bus is managed by the MMU as are the logical and physical addresses of each block of data.

Windows determines how much hard disk space to allocate to virtual memory. The good news is that you can make your system faster by manually altering your Virtual Memory settings. Follow these steps to get a noticeably faster PC:

Go to:

Start-> right click in MyComputer-> Properties-> Advanced-> Where Perfomance -> Settings->Advanced->Where Virtual Memory-> Settings->Initial Size = 800 Maximum Size = 4000(or more) and done.
HurryPoker
HurryPoker
Miembro
Miembro

Usuario Registrado Masculino España No tienes ningun Trofeo No tienes ningun Premio No tienes ninguna Advertencia
~ New User ~
Mensajes : 20
Cash Point : 18670
Prestigio : 5
Registro : 20/09/2014
Localización : SPain,Madrid
Edad : 38

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.