Enumere a nova versión de earlyoom 1.4, unha utilidade para evitar fallos por falta de memoria

earlyroom

A principios de ano falamos aquí no blog sobre a utilidade Earlyoom, que, despois dunha discusión dos desenvolvedores de Fedora, foi aceptada por usar esta utilidade en Fedora 32 como proceso de fondo, co que pretenden mellorar a resposta do sistema á falta de memoria e evitar así fallos.

Agora varias semanas despois e Despois de oito meses de desenvolvemento, anunciouse o lanzamento da nova versión de Earlyoom 1.4.

Para aqueles que non estean familiarizados co proxecto, deberían sabelo este é un fío de fondo que comproba periodicamente a cantidade de memoria dispoñible (MemAvailable, SwapFree) e tenta responder a unha condición de memoria fóra dunha fase inicial. O código do proxecto está escrito en C e distribuído baixo a licenza MIT.

Artigo relacionado:
Earlyoom o fío para incluír en Fedora 32 para evitar fallos de memoria

Se a cantidade de memoria dispoñible é menor que o valor especificado, earlyoom rematará pola forza (enviando SIGTERM ou SIGKILL) o proceso do proceso que máis memoria consume (que ten o maior valor / proc / * / oom_score), sen que o estado do sistema elimine os búferes do sistema e interfira co control de traballo de intercambio (OOM (sen memoria) nos disparos do núcleo cando o estado é baixo a memoria xa alcanzou valores críticos e, xeralmente, neste momento o sistema xa non responde ás accións do usuario).

Earlyoom admite o envío de notificacións de procesos forzados ao escritorio (mediante o envío de notificacións) e tamén ofrece a posibilidade de definir regras nas que se poden empregar expresións regulares para especificar os nomes dos procesos cuxa terminación é preferida (a opción "–preferente") ou paradas que deben evitarse (Opción sen evitar).

Que hai de novo en Earlyoom 1.4?

Nesta nova versión resáltanse algúns cambios, dos cales Menciónase que traballo na limpeza do código e iso tamén debido á demora de carga dos atributos do proceso, a lóxica de selección dos procesos a completar aumenta nun 50%.

Ademais diso tamén implementouse o restablecemento do privilexio root no ficheiro da unidade "systemd earlyoom.service". Este cambio rompe a capacidade de recibir notificacións GUI.

Para reactivar as notificacións da GUI, proponse devolver os dereitos de root descomentando a liña «DynamicUser = verdadeiro«.

Aínda que deshabilitar root tamén fai imposible obter información sobre o consumo de memoria ao montalo / proc en modo hidepid = 1 ou hidepid = 2.

Dos outros cambios que destacan:

  • O UID do proceso finalizado reflíctese no rexistro, ademais do PID e o nome do proceso.
  • Engadiuse o resaltado do rexistro de depuración gris claro.
  • Se foi posible, utilizouse a declaración de variables locais aos bloques.
  • Configuración engadida PATH_LEN para anular o valor do tamaño do búfer incrustado no código.
  • Posibilidade de comezar cppcheck se está dispoñible.
  • Engadiuse a proba de rendemento "facer banco".
  • Suite de probas ampliada (facer proba).

Finalmente se queres saber máis sobre el Sobre esta versión, podes consultar os detalles no seguinte ligazón. 

Como instalar earlyoom en Linux?

Para aqueles que estean interesados ​​en probar esta utilidade, poden facelo seguindo as instrucións que compartimos a continuación.

Earlyoom atópase nos repositorios dalgunhas das distribucións do popular Linux, así que, no caso de Debian, Ubuntu e calquera derivado destes, a instalación pódese facer co seguinte comando:

sudo apt install earlyoom

Unha vez feito isto, o servizo agora debe estar habilitado co comando:

sudo systemctl enable earlyoom

E comeza por:

sudo systemctl start earlyoom

Para o caso de Fedora e RHEL 8 con EPEL, pódese instalar co seguinte comando:

sudo dnf install earlyoom

E o servizo actívase con:

sudo systemctl enable --now earlyoom

Finalmente, no caso de Arch Linux ou calquera outro derivado deste, a instalación faise co seguinte comando:

sudo pacman -S earlyoom

E o servizo actívase con:

sudo systemctl enable --now earlyoom

Para todas as outras distribucións de Linux, poden realizar a instalación compilando o código de utilidade.

Para obter o código podemos facelo co seguinte comando:

git clone https://github.com/rfjakob/earlyoom.git

cd earlyoom

Procedemos á recompilación con:

make

E instalamos (se tes Systemd):

sudo make install

Ou para aqueles que non teñen Systemd:

sudo make install-initscript

E para usar o servizo faino con:

./earlyoom


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

5 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado.

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   infogon dixo

    Un detalle do título: «perda de memoria»

    1.    David naranjo dixo

      Grazas pola observación. Saúdos! 🙂

  2.   Linuxman R4 dixo

    Creo que hai un detalle coa instalación en Manjaro (derivada de Arch). Non atopei o paquete nos repositorios normais.

    Polo tanto, a instalación debería realizarse a través de yaourt.

    yaourt earlyoom

    Saúdos!

    1.    David naranjo dixo

      En Arch, está dentro do repositorio da comunidade que ten que estar habilitado en pacman.conf. Do mesmo xeito que mencionas tamén está en AUR.

      Grazas pola observación 😀

  3.   Fran Pavon dixo

    Ola, quero que este servizo comece en MXLinux cada vez que acendo a computadora sen ter que poñer o comando no terminal, como podo facelo?

bool (verdadeiro)