Estoy configurando y compilando el nuevo kernel 3.0. Una de las ventajas que planeé usar durante algún tiempo (mediante parches) que se fusionó en 3.0 es zram.
¿Es posible configurar tanto el intercambio de disco duro como el intercambio de zram para que el zram se use primero y solo las páginas derramadas se coloquen en el intercambio real?
linux
swap
zram
virtual-memory
Maciej Piechotka
fuente
fuente
max_comp_streams
parece estar de1
acuerdo con la documentación . No he comprobado si ese parámetro existía en 2011, pero parece ser una mejor opción que varios archivos de intercambio.zram-config
en Ubuntu (y probablemente debian), noté que la configuración predeterminada es 1 por núcleo o hilo (2 en un viejo E2140 de doble núcleo y 4 en un i3-3220)swapon
tener-p
interruptor que establece la prioridad. Puedo configurar:O en / etc / fstab:
EDITAR: solo para una solución completa; esta línea puede ser útil como regla udev:
fuente
Seleccione cuántos dispositivos zram desea pasando
kernel parámetros o directamente al módulo (sin zram.). El valor predeterminado es 1. zram podrá utilizar tantos cpus como la cantidad de dispositivos que cree.
Prepare el dispositivo zram0, configure el tamaño en 1 GB.
Alternativamente, puede hacerlo por regla udev. Crear intercambio en zram0
y habilitarlo con mayor prioridad que otros dispositivos de intercambio
fuente
zram0
yzram1
hasta el valor 10 en una caja de 2 núcleos Intel T9300, me lanza con:swapon: /dev/zram0 or 1: swapon failed: Device or resource busy
.Por alguna razón, parece haber mucha mala interpretación de https://www.kernel.org/doc/Documentation/blockdev/zram.txt
Establece claramente:
Pero hay un mito urbano común y persistente que dice que max streams es 1.
Claramente no es verdad.
Los dos sistemas operativos en los que zram ha demostrado ser eficaz con Chrome OS y Android en un solo dispositivo. También ajustan
page-cluster
:- de la documentación del kernel para
/proc/sys/vm/*
Así que usa
echo "0" > /proc/sys/vm/page-cluster
para forzar una sola página.Mucho parece originarse en zram_config, el paquete debian / ubuntu que, por alguna razón, parece tener muy poca correlación con los documentos del núcleo para zram y ha generado una serie de susurros chinos que, en esencia, podrían estar completamente equivocados.
Con el intercambio de archivos, ¿crea una unidad de intercambio para cada núcleo? Tal vez eso pueda responder a sus preguntas. También para respaldar esto, Google Chrome OS y Android que emplean con éxito con el clúster de páginas anterior ya que no coinciden con un disco para que la latencia se pueda mejorar, dispositivos individuales.
También para un administrador de sistemas, ¿qué es el uso real de memoria real o el uso de memoria virtual? La mayoría de los ejemplos muestran la creación a través de disk_size e ignoran totalmente mem_limit. disk_size = tamaño de vm sin comprimir. mem_limit = límite real de huella mem.
Hace que la opción disk_size sea confusa, ya que es un tamaño máximo virtual que depende de la relación comp_alg y la sobrecarga del 0.1% del tamaño del disco cuando no está en uso y realmente es una estimación aproximada de mem_limit * (aproximadamente 2-4) de frugal vs optimismo.
zram_config ni siquiera verifica el uso anterior del servicio y lo sobrescribe, mientras que una simple verificación de la clase zram sys como se muestra a continuación.
fuente
Cuando habilita zram, automáticamente tendrá prioridad.
Para ubuntu 16.04:
/usr/bin/init-zram-swapping
Puede editar ese archivo (haga una copia de seguridad primero), para reducir el ram real usado, cambié la línea de memoria a esto:
fuente