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

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

[ Hits: 8.877 ]

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

Navegador/Suíte SeaMonkey em toda e qualquer distro

Bateria da BIOS Velha - Contornando Problemas de Data e Hora

Como usar Looking Glass sem alterar seu sistema Linux

Instalador universal de pacotes PackageKit e suas GUIs em qualquer distro, inclusive no Sabayon

Instalando ou atualizando vários reprodutores de mídia no Gentoo Linux ou Sabayon

Leitura recomendada

Prova LPI no Rio de Janeiro em Novembro

Instalando o Internet Explorer for Linux (ies4linux) via proxy

Cisco - Reload, um comando simples que pode salvar sua vida

Nagios - Obtendo endereços IPs dos servidores nos arquivos de configuração

CentOS 5.4 - Criando um repositório local em 10 passos

  

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