Estoy usando RAM para almacenar algunas de las tablas de mi base de datos y las otras están almacenadas en el disco duro.
Hoy llegué a saber que mis procesos están utilizando memoria de intercambio. Ahora, ¿qué es la memoria de intercambio y cómo puedo detectar qué proceso está usando la memoria de intercambio y cómo puedo evitar que la usen?
Respuestas:
Si se queda sin memoria física, usa memoria virtual, que almacena los datos en la memoria del disco. Leer desde el disco es varios órdenes de magnitud más lento que leer desde la memoria, por lo que esto ralentiza todo. (El intercambio de datos entre la memoria real y la memoria virtual es "intercambio". El espacio en el disco es "espacio de intercambio").
Si su aplicación está "usando intercambio", entonces necesita usar menos memoria o comprar más RAM.
(El intercambio es útil porque las aplicaciones que no se están usando se pueden almacenar en el disco hasta que se usen. Luego se pueden "paginar" y ejecutar normalmente de nuevo. Aunque no está en la memoria, el sistema operativo puede usar esa memoria para otra cosa, como caché de disco. Por lo tanto, es una característica muy útil, pero si no tiene suficiente memoria física para ejecutar su programa, definitivamente necesita más memoria. Afortunadamente, la memoria es realmente muy barata en estos días).
fuente
Una computadora tiene una cierta cantidad de memoria física. Pero la mayoría de las veces queremos más. Entonces intercambiamos algo de memoria en el disco.
Cada vez que necesitamos esa memoria, es necesario volver a intercambiarla en la memoria (intercambiando alguna otra pieza). Existen algoritmos extremadamente inteligentes para minimizar el retraso, pero aún así a veces tenemos que esperar.
En Windows, si observa el administrador de tareas, puede mostrar los errores de la página de columna. Esto muestra el número de veces que una aplicación solicita un trozo de memoria que estaba en el disco y necesita intercambiarse. Muchas fallas de página = aplicación lenta.
Este proceso se usa en varios niveles. Un resumen de rápido a lento:
fuente
Si no desea usar el intercambio, no use una partición de intercambio (comente la línea
/etc/fstab
), pero eso evitará que comience un nuevo proceso y hará que Malloc falle si se queda sin memoria física. Esa no es una buena idea en general ... no es muy segura ni siquiera muy útil, ya que el sistema operativo mantendrá las páginas activas en la memoria y cambiará al disco aquellas que no se están utilizando recientemente.Otra solución podría ser hackear la base de datos para que bloquee las páginas en la memoria (sé que se puede hacer, pero ahora no podría decir exactamente cómo), pero de todos modos, es probable que su base de datos use su propio intercambio y mecanismos de almacenamiento en caché.
Para saber qué es el intercambio y cómo funciona la memoria virtual ... Le recomiendo que eche un vistazo a algunas conferencias sobre el sistema operativo, tal vez el MIT Open Courseware podría ser de ayuda.
fuente
He encontrado una respuesta parcial. Una memoria de intercambio es un espacio en el disco duro de su computadora que los sistemas operativos usarán para poner la información que está realmente en la RAM para liberarla para otra aplicación. Esto debe hacerse cuando el sistema necesita memoria para un nuevo proceso y no hay ninguno, por lo que podemos ver que si nuestro sistema tiene mucha RAM, tal vez no necesite memoria SWAP.
ACTUALIZAR
Para averiguar dónde intercambiar espacio (o memoria virtual) puede ir al Administrador de tareas (CTRL + ALT + SUPR) y activar desde VER -> COLUMNAS -> MEMORIA VIRTUAL. Ahora solo calcule la diferencia entre el uso de memoria y la memoria virtual. También aquí hay una instrucción sobre cómo verlo si está ejecutando Vista: http://www.ehow.com/how_5067693_increase-swap-space.html
fuente
Swap es espacio en el disco duro utilizado como RAM. Es (relativamente hablando) muy lento, pero impide que las computadoras se bloqueen cuando intentan manejar más datos de los que su RAM puede manejar.
Para evitar que los procesos usen el intercambio, instale más RAM.
fuente
Si no desea que sus procesos utilicen la memoria de intercambio, simplemente desactive la memoria de intercambio por completo. Desafortunadamente, si alguna vez se queda sin memoria, el kernel de Linux matará algunos de sus procesos en ejecución para liberar algo de memoria para su uso.
Si tiene suficiente RAM para su sistema, puede pasar sin memoria de intercambio.
Tengo una computadora portátil con 768Mb de RAM que no usa memoria de intercambio. Es lo suficientemente bueno para mis necesidades. Tengo un servidor con 256Mb de RAM y no usa memoria de intercambio. Está ejecutando 8 servidores virtuales utilizando la virtualización OpenVZ, sin problemas tampoco.
Por lo tanto, depende de usted si necesita memoria de intercambio.
fuente