VeryNice - Controle e gestão automática de serviços no Linux

Publicado por Alberto Federman Neto. em 26/08/2010

[ Hits: 8.779 ]

Blog: https://ciencialivre.blog/

 


VeryNice - Controle e gestão automática de serviços no Linux



1) Introdução:

Quando iniciamos, "damos Boot" no Linux, o kernel é carregado para que possamos usá-lo.

Em seguida ao kernel, são iniciados diversos "processos ou serviços" que reconhecem e controlam o teclado, o CD-ROM, a rede, as portas USB, impressoras etc. Exemplos desses processos são: o HAL, o DBUS, drivemount, ntp, Keymap etc.

O iniciar desses processos pode ser visto se observarmos o boot em modo "verbose".

Finalmente se iniciam o XDM e o KDM (no KDE) ou GDM (no GNOME) e então veremos a tela de login para entrarmos na sessão.

Alguns desses processos não cessam após o boot e continuam ativos e residentes na memória RAM para serem utilizados. Esses serviços são mantidos através de pequenos aplicativos, chamados "Daemons", como ntpd, notification-applets, dbus-daemon, dbus-lauch, nm-applet, hdparm etc.

Quando o número desses serviços é muito grande e a memória RAM da máquina não é tão grande, o micro pode ficar lento. Uma maneira de controlarmos isso é removendo a carga dos serviços desnecessários ou não essenciais, desativando-os.

Isto porém, exige conhecimento. É preciso saber quais são os serviços ou tipos de serviços que podem mesmo ser desativados, ou corremos risco de travar o sistema.

No entanto existe um pequeno aplicativo, desenvolvido (originalmente para Solaris) pela Cornell University, que controla os serviços e processos dos sistemas operacionais tipo Unix ou derivados. Trata-se do VeryNice:
Ele atua fechando ou abrindo, "matando" ou "adormecendo","acordando" ou recarregando os diversos serviços e processos, e/ou regulando a memória RAM utilizada, tudo automaticamente em "Background", sem intervenção humana, configuração e nem interface gráfica.

2) Instalação:

Em meus Linux, tipo Gentoo ou Sabayon, ele foi facilmente encontrado nos repositórios e instalado:

sudo equo install verynice
$ sudo emerge -av verynice


Deve existir para outras distribuições também. Instale-o conforme o recomendado para a sua distro. Se não achar, ele pode ser baixado na forma de Fonte ou empacotado em formato RPM, a partir do seguinte endereço:
3) Diretórios de localização e uso:

Aqui neste ponto, a documentação não é esclarecedora, talvez pela diferente estrutura da árvore de diretórios dos sistemas Solaris.

Diz-se que ele poderia se instalar (PREFIX) em /usr, ou em /usr/bin, ou ainda em /usr/local/sbin, e ainda que ele seria iniciado como "Daemon" a partir do próximo boot. Desejando iniciá-lo imediatamente, a mesma documentação recomenda a execução destes comandos:

sudo /etc/rc.d/init.d/verynice.init start (em outras distros, pode ser /etc/init.d/verynice.init start)

Caso não fosse encontrado o pacote após instalação, poder-se-ia executar estes comandos:

cp verynice.init /etc/rc.d/init.d
$ sudo chkconfig --add verynice.init
$ sudo chkconfig verynice.init on


No meu caso, porém foi bastante mais simples. O programa iniciou quando dei o comando direto, como mostrado abaixo:

sudo verynice &
Senha:
verynice: starting up

Para garantir que o pacote iniciaria no próximo boot, fiz o comando:

sudo rcupdate add verynice default

Com isto ele foi adicionado ao /etc/init.d para execução no boot.

Após a instalação o binário estava localizado como serviço em /usr/sbin/verynice.bin e o arquivo de configuração em /etc/verynice.conf, como pode ser visto abaixo. Apesar do programa atuar automaticamente, ele pode ser controlado pela edição desse arquivo:

# verynice.conf -- configuration file
#
# declare root immune (root owned processes will never be adjusted)
immuneuser root
immuneuser bin
immuneuser daemon
immuneuser adm

# declare immune program, matlab in this case. If the line is uncommented,
# any program with "matlab" in it's path will be immune to renicing.
# The quoted quantity must match a substring of the symbolic link in
# /proc/{pid}/exe
# if there is a leading slash, the match must be precise
#immuneexe "matlab"

# declare "bad" program -- automatically niced to batch job level. if want, uncomment
#badexe "mathematica"

# declare "hungry" program -- always assumed to have 100% cpu usage,
#                             regardless of actual usage. For programs
#                             which tend to have lots of little subprocesses
#                             with short lifetimes to do their dirty work
#                             (such as "make")
# (we use leading slashes and various possible paths so that we will never
#  accidentally give this flag to another program)
# Note that it IS possible to set both the "hungry" and "runaway" flags
# simultaneously (process will always be killed after a certain amount of time)
hungryexe "/usr/bin/make"
hungryexe "/usr/bin/gmake"
hungryexe "/bin/make"
hungryexe "/bin/gmake"
hungryexe "/make"
hungryexe "/gmake"
hungryexe "/gnumake"
hungryexe "/usr/local/bin/make"
hungryexe "/usr/local/bin/gmake"
hungryexe "/usr/local/bin/gnumake"

# declare "good" program -- automatically negatively reniced to
# multimedia job level. goodexe "xmms" reduces the chances of skipping when
# playing mp3's
# Also we do this for "xanim" and "realplay"
goodexe "xmms"
goodexe "xanim"
goodexe "realplay"
goodexe "rvplayer"

# reduce your probability of turning out coasters from your CD drive
goodexe "cdrecord"
goodexe "xcdroast"

# Making the X server a "good" program is usually a good idea too
#   -- X is essentially a multimedia app. These next few lines will
#   work even if root is declared an "immune" user and X is run as root,
#   because "goodexe"'s specified in verynice.conf are exceptions to
#   the "immuneuser" rule
# (these are appropriate for RedHat Linux, with XFree 3.x -- the appropriate
# file might be different on your system. To find the proper name, do a PS
# to find the X pid, then ls -l /proc/{pid}/exe
goodexe "/etc/X11/X"
goodexe "/usr/X11R6/bin/XF86_SVGA"
goodexe "/usr/X11R6/bin/XF86_Mono"
goodexe "/usr/X11R6/bin/XF86_VGA16"
goodexe "/usr/X11R6/bin/XF86_S3"
goodexe "/usr/X11R6/bin/XF86_Mach32"
goodexe "/usr/X11R6/bin/XF86_Mach64"
goodexe "/usr/X11R6/bin/XF86_Mach8"
goodexe "/usr/X11R6/bin/XF86_8514"
goodexe "/usr/X11R6/bin/XF86_P9000"
goodexe "/usr/X11R6/bin/XF86_AGX"
goodexe "/usr/X11R6/bin/XF86_W32"
# These are for XFree86 4.0, but haven't been tested
goodexe "/usr/X11R6/bin/XFree86"
goodexe "/usr/X11R6/bin/X"

# declare "potential runaway" program. potential runaways can go to a lower
# priority (reniced all the way to +20), and if they exceed that will be
# killed. Other processes are never killed. This is good for netscape and
# any other programs with a tendency to start eating the CPU for no reason.
runawayexe "netscape"
runawayexe "Fvwm"
runawayexe "xfig"
runawayexe "gimp"

# Sample additional parameters, specifying the built in defaults
#notnice    -4
#batchjob   18
#runaway    20
#kill       22
#badkarmarate .0167
#badkarmarestorationrate .0167
#periodicity 60
#rereadcfgperiodicity 60

Conclusão:

O importante é a eficiência do pacote.

Principalmente no Semprom 1800, com apenas 512 megas de RAM, que tenho na FCFRP-USP, onde trabalho, o computador ficou bem mas rápido e no monitoramento (GNOME System Monitor) o uso da CPU caiu cerca de 30-70 %.

Outras dicas deste autor

Escolhendo drivers para antigas placas de vídeo

Contornando problemas de falta de bibliotecas - Links simbólicos

GTK-Splitter - Dividindo arquivos grandes em partes menores com facilidade

Configurando aceleração 3D e Compiz-Fusion no Mandriva 2009.0

FlashGot - Usando aceleradores de download, sem precisar de linha de comando

Leitura recomendada

Erro na instalação do Liquorix: "gpg: keyserver receive failed: No name" [RESOLVIDO]

Fazendo cópia de CDs via prompt

Pós-Instalação do Arch + i3 + Polybar + Pywal via Shell

Multicast em redes Bridge com OpenVPN

Troque o Basename por Expansão de Parâmetros

  

Comentários
[1] Comentário enviado por removido em 19/03/2011 - 13:44h

otimo material parabens , esse programa seria mais ou mesmo similar ao rcconf , so que no rcconf teria que ser desativado os servicos manualmente,
so uma pequena correcao no paper .

$ sudo rcupdate add verynice default
seria assim
$ sudo rc-update add verynice default

abracos



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts