Blog del Podcast
podcast      GitHub      Twitter   Telegram

NeverIdle. VPS de Oracle nunca inactivo

Tiempo estimado de lectura: 11 minutos. 1291 palabras. vps

VPS de Oracle y las cuentas Oracle Cloud Free Tier

Algunos usuarios han recibido un aviso de Oracle Cloud Free Tier, que consiste en un servicio gratuito de Oracle Cloud Infrastructure (OCI) que ofrece recursos limitados de computación, almacenamiento y red, entre otros. El aviso les informa de que OCI va a reclamar los recursos de computación que hayan estado inactivos durante más de una semana, y que estos recursos serán detenidos en una fecha determinada. También les sugiere que conviertan su cuenta a un plan de pago por uso (PAYG), con el que no tendrán que pagar nada si se mantienen dentro de los límites de Always Free, pero evitarán que sus recursos inactivos sean detenidos.

Esta medida se debe a que OCI quiere optimizar el uso de los recursos para ofrecer un mejor servicio a los clientes de Always Free, y que se basa en unos criterios de inactividad que tienen en cuenta la utilización de la CPU, la red y la memoria de las instancias de computación. Esta medida se anunció previamente en la página web de OCI, pero que luego desapareció y volvió a aparecer.

Recomienda a los usuarios de Free Tier que actualicen su cuenta a PAYG si quieren conservar sus recursos inactivos, pero advierte de que puede haber dificultades para hacerlo si se usan tarjetas prepago, se oculta la ubicación o la identidad, o se introducen datos incompletos o inexactos.

Recuperación de instancias de computación inactivas

Las instancias de computación Always Free que estén inactivas podrán ser recuperadas por Oracle. Oracle considerará que las instancias están inactivas si, durante un período de 7 días, se cumplen las siguientes condiciones:

Que es NeverIdle

NeverIdle es un programa diseñado para desperdiciar recursos de la computadora con el objetivo de evitar que la cuenta de usuario sea eliminada por inactividad en servicios en línea que requieren que la cuenta esté activa. El programa es una solución simple para aquellos que necesitan mantener la cuenta activa en servicios que requieren un uso frecuente pero no tienen la capacidad o el tiempo para hacerlo manualmente.

El programa cuenta con un script de un solo clic para su instalación en sistemas Linux. El script por defecto ejecuta comandos para desperdiciar recursos de la CPU, memoria y red de manera periódica. Estos comandos son configurables a través de parámetros, lo que permite a los usuarios ajustar la cantidad y frecuencia de desperdicio de recursos según sus necesidades.

Los parámetros disponibles incluyen la frecuencia de uso de la CPU y memoria, la cantidad de memoria que se quiere desperdiciar y la frecuencia de uso de la red. También es posible configurar el número de conexiones en paralelo y la prioridad del proceso.

Una vez que se ejecuta el programa, se pueden observar los efectos inmediatos del desperdicio de recursos. Sin embargo, se debe tener en cuenta que el programa no cubre todas las necesidades y no garantiza que la cuenta permanezca activa en todos los servicios en línea. Además, su uso indebido o en exceso puede dañar el hardware de la computadora y afectar negativamente el rendimiento del sistema. Por lo tanto, es importante utilizar NeverIdle con precaución y responsabilidad.

Instalación de Go

Primero miraremos que procesador tenemos, si es ARM o AMD64

uname -m

Ahora dependiendo del procesador, descargaremos y instalaremos la última versión de Go. Descargamos la versión más reciente desde la página de go, al dia de la publicación de este artículo, vamos por la versión 1.20.3, que es la que utilizo en el ejemplo.

ARM64

wget https://storage.googleapis.com/golang/go1.20.3.linux-arm64.tar.gz                                                            sudo tar -C /usr/local -xvf go1.20.3.linux-arm64.tar.gz

AMD64

wget https://storage.googleapis.com/golang/go1.20.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xvf go1.20.3.linux-amd64.tar.gz

Ahora debes establecer las rutas en tu entorno.

En primer lugar, debes establecer el valor raíz de Go, que le indica a Go dónde buscar sus archivos. Puedes hacerlo editando el archivo ".profile", que contiene una lista de comandos que el sistema ejecuta cada vez que inicias sesión. Usa tu editor preferido para abrir ".profile", que se encuentra en el directorio de inicio de tu usuario. Aquí, usaremos nano:

nano ~/.profile

Luego, agregas la siguiente información al final de tu archivo:

export PATH=$PATH:/usr/local/go/bin

Después de agregar esta información a tu perfil, guarda y cierra el archivo. Si usaste nano, hazlo presionando CTRL+X, luego Y y finalmente ENTER. A continuación, actualiza tu perfil ejecutando el siguiente comando:

source ~/.profile

Finalmente, verifica si puedes ejecutar comandos de Go ejecutando "go version":

go version

Este comando mostrará el número de versión de la versión de Go instalada en tu sistema

Instalación de NeverIdle

ARM Server

wget https://github.com/layou233/NeverIdle/releases/download/0.2.3/NeverIdle-linux-arm64 -O NeverIdle

AMD Server

wget https://github.com/layou233/NeverIdle/releases/download/0.2.3/NeverIdle-linux-amd64 -O NeverIdle

Probando NeverIdle

Damos permisos de ejecución:

chmod +x NeverIdle

Ahora ya podemos ejecutar el scritp. Utilizaremos este ejemplo:

./NeverIdle -c 2h1m2s -m 2 -n 4h

Comprobar que el script funciona y dejarlo en segundo plano

Ejecuta el siguiente comando:

ps aux | grep NeverIdle

Yo estoy utilizando un script que utiliza screen que os hable hace mucho tiempo y que me permite dejar NeverIdle en segundo plano.

Instalación

bash <(curl https://raw.githubusercontent.com/uGeek/s-screen/main/s) install debian

El artículo del funcionamiento lo encontrareis en: https://ugeek.github.io/blog/post/2020-10-28-s-screen-gestionando-mis-procesos-en-segundo-plano-de-un-modo-sencillo.html

También te recomiendo añadir a tu crontab para que arranque al reinicio:

@reboot ( sleep 100 ; screen -dmS NeverIdle /home/ubuntu/NeverIdle -c 1h59m17s -m 2 -n 3h35m20s )

Yo he dejado el script en la raíz del $HOME.

El comando sería:

A modo de comando:

screen -dmS NeverIdle /home/ubuntu/NeverIdle -c 1h59m17s -m 2 -n 3h35m20s

Añadiendolo a tu sistema

A mi me gusta integrarlo como una aplicación del sistema y lo hago del siguiente modo creando un enlace simbólico

sudo ln -s /home/ubuntu/NeverIdle /usr/bin/NeverIdle

Aplicando un 20% de CPU durante 20 segundos

timeout 20s NeverIdle -cp 0.2

Crontab cada hora random

Cada hora a las 00 minutos, eligirá un minuto al azahar para ejecutar el 20% de CPU durante 20 segundos

00 * * * * MINUTO=$(shuf -i 0-59 -n 1) ; sleep $MINUTOm ; timeout 20s NeverIdle -cp 0.2

Docker Compose

Si tienes docker en tu vps, todo será mucho más facil.

Crea este docker Compose:

version: '2'
services:
  neveridle:
    container_name: neveridle
    hostname: neveridle
    image: ghcr.io/m3chd09/neveridle
    command: /app/NeverIdle -c 2h -m 3 -n 4h
    restart: always
    volumes:
      - /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro

La linea de "command" está configurada para que gaste CPU cada 2h (-c 2h), que gaste 2GiB memoria (-m 2) y que gaste red, con un test de velocidad, cada 4h (-n 4h), pero si lo vais a ejecutar en una instancia que no sea ARM se debe quitar la parte de la memoria por un lado porque no cuenta para considerarla sin uso por parte de Oracle y por otro lado importante porque esas instancias tienen 1GB de RAM y si le dejas, eso te la deja frita al intentar gastar 2GB de RAM.

Por cortesia de @Rapejim

Fuentes


Publicado por Angel el Monday 10 April del 2023



También te puede interesar:




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.