Syntax coloring

Mostrando postagens com marcador arch linux. Mostrar todas as postagens
Mostrando postagens com marcador arch linux. Mostrar todas as postagens

sexta-feira, 27 de março de 2015

Java / GWT development with tmpfs (or, why is my development slower because I've switched to Arch Linux)

I've recently switched from Ubuntu to Arch Linux (Antergos, really, as it provides a decent installer and nice defaults, and is just Arch in the end).
Arch uses systemd (the controversial init system that has caused lots of debates, but I have personally loved it), and since the upcoming 15.04 version, Ubuntu will use it too.
And systemd by default mounts the /tmp directory files using a tmpfs, which is mounted on RAM, limited by default to half the physical available memory. Also, in my installation (don't know if this is Arch's or Antergos' default), the /etc/fstab file also had the /tmp to be mounted as tmpfs.
This might be nice for most people, but if you run applications that store huge amounts of data in /tmp, it can be terrible.
In my case it is GWT which writes hundreds of megabytes to the temporary folder.
Result? When GWT is compiling Java to JavaScript code, things get SLOOOOOW, because:
  • Eclipse uses1.0-1.5GB of RAM
  • The GWT SuperDevMode, together with the running application, takes another 1.0-1.5GB
  • Chrome uses 1.0-2.0GB of RAM with several open tabs (and when dev tools is open, it eats a lot of RAM too)
Counting up to 4GB (max) of tmpfs, and the desktop environment (Cinnamon in my case), Skype, DropBox and others, my 8GB quickly get short.

At least I found that I can improve things by disabling mounting /tmp as tmpfs.
To do that I've resorted, as usual, to the excellent Arch Wiki (by the way, one of the best pieces of documentation for any project I've ever seen): https://wiki.archlinux.org/index.php/Tmpfs.

I have removed the line in /etc/fstab which declares /tmp as tmpfs and created the /etc/tmpfiles.d/tmp.conf file with the following content:

# see tmpfiles.d(5)
# always enable /tmp folder cleaning
D! /tmp 1777 root root 0

# remove files in /var/tmp older than 10 days
D /var/tmp 1777 root root 10d

# namespace mountpoints (PrivateTmp=yes) are excluded from removal
x /tmp/systemd-private-*
x /var/tmp/systemd-private-*
X /tmp/systemd-private-*/tmp
X /var/tmp/systemd-private-*/tmp

Then we need to tell systemd to not mount /tmp as tmpfs automatically, with the following command:
systemctl mask tmp.mount

Afterwards, just rebooted the system and.... magic! I can nicely work with GWT compilation again.

As Ubuntu 15.04 will switch to systemd, and systemd by default mounts /tmp as tmpfs even without anything defined in /etc/fstab, this might affect Ubuntu too in the future. The same is true to other major distributions.

quarta-feira, 22 de abril de 2009

De volta ao Kubuntu Linux

Bem, depois de algum tempo com o Arch Linux, voltei a instalar o Kubuntu...
Minhas conclusões sobre o Arch:
  • É uma excelente distribuição, principalmente pelo fato de não haver "versões" - os programas são sempre atualizados e basta rodar o lendário pacman -Syu para obter o "the latest and the greatest";
  • Como dito no site do Arch mesmo, ele não tenta "esconder" a complexidade do sistema. Muita coisa vem funcionando de fábrica, mas muita tem de ser configurada à mão.
Agora os pontos negativos:
  • Precisava rodar o GWT, que é 32 bits (e meu sistema, 64). Tive até que fazer uma gambiarra do tipo: renomeei o executável do java 32 e criei o script java que setava várias variáves de ambiente e chamava o executável renomeado;
  • Fazer o modem 3G da vivo funcionar foi impossível. Ainda bem que eu tinha outro notebook com um windinho e compartilhei a conexão 3G.
Assim, resolvi voltar ao Kubuntu. 2 dias antes do release final não consegui esperar e baixei o RC assim mesmo ;).
Minhas impressões:
  • O sistema boota muito rápido. Leva 20,5 segundos cronometrados desde o GRUB até a tela de login do KDM;
  • O QT 4.5 deixa o sistema bem mais rápido;
  • Ele vem com o estilo QtCurve para aplicações GTK pré configurado. Eu havia escrito sobre como fazer isso neste post.
  • Gostei do widget do NetworkManager, apesar de um bug que faz com que não haja espaço para todas as redes wireless aparecerem ao clicar nele.
Mas, como nem tudo são rosas, não gostei do KPackageKit. Acho que ele está muito cru ainda. Principalmente por não mostrar os diálogos dos pacotes debian. Tente, por exemplo, instalar o java da sun (agora da oracle) e vai dar erro, porque a licença não foi aceita, porque o KPackageKit não sabe como perguntar se você aceita a licença... Por isso, instalei o bom e velho synaptic, que é o melhor front-end para o apt, com certeza.

Só uma dica: para que o synaptic tenha a mesma aparência das aplicações GTK rodadas com seu usuário comum, rode: sudo ln -s $HOME/.gtkrc-2.0-kde4 /root/.gtkrc-2.0

Bem, minha impressão foi muito boa. Parabéns, equipe do Kubuntu (e da base do Ubuntu, claro). Eu realmente achei uma pena que o Ubuntu tenha escolhido o Gnome como ambiente primário. Sem querer iniciar uma "flamewar", o KDE é muito bala!!!

domingo, 22 de março de 2009

Nova investida: Arch Linux

Parece a sina de muitos dos que curtem Linux: testar um monte de distribuições...

Minha história com o Linux foi mais ou menos:


  • 2001: SuSe

  • 2002: Slackware

  • 2003: SuSe

  • 2004 - 2005: Slackware

  • 2005: Ubuntu / Kubuntu

  • 2006 - 2007: Kubuntu

  • 2007 - 2008: Mandriva

  • 2008 - 2009: Kubuntu


Só que agora resolvi mudar de novo, e depois de ter lido bastante, resolvi testar o Arch Linux. Por quê? Um motivo principal: com ele não precisa esperar 6 meses pra instalar a nova versão do aplicativo X, junto com o sistema todo. Claro, existem repositórios alternativos, PPAs e tal, mas eu sempre acabava reinstalando o sistema todo a cada 6 meses. E como tenho um desktop e um laptop, são 2 micros. E nem contei o do trabalho ainda ;).


Entretanto, teria um problema: a instalação não é tão simples como a do (k)ubuntu ou do mandriva: é modo texto, cheia de opções e tal... Mas não tenho medo de coisas como "modo texto" ou "linha de comando". Portanto, resolvi encarar...


Minha idéia não é um fazer um tutorial de como instalar o Arch Linux (tem vários na Internet), mas relatar minha experiência... Bem, apesar da instalação ser textual, é bastante fácil. Depois de instalar o sistema, instalei o xorg, o kde e os drivers da NVIDIA. Depois de uma mexida no xorg.conf (aliás, deve-se baixar o pacote hwd, e rodar hwd -xa para gerar o arquivo) para ativar resoluções maiores, maior nível de cor (vinha com 16 e não 24 bits), colocar o driver da nvidia e habilitar o Composite, tudo funcionou beleza...
Instalei também o shaman, que é uma interface gráfica para o pacman (gerenciador de pacotes). Gostei bastante dele.


Depois disso, aplicações como o gimp e o firefox são indispensáveis. Mas como elas são GTK (o KDE roda nativamente em outro toolkit, o QT), o firefox, por exemplo, fica horrível. Parece saído diretamente dos anos 70. Instalando o pacote gtk-qt-engine e indo nas configurações de aparência do KDE, e definindo para usar para o GTK o estilo do QT, as coisas ficam beeem melhores. Aliás, o firefox fica bom mesmo com o tema KDE4 + Firefox3.


Como resultado, tenho agora um sistema que inicializa muito mais rápido e roda muito mais rápido que o Kubuntu. Na verdade, não sei se a diferença maior no KDE é pelo QT 4.5 ou pelo Arch, mas no Kubuntu Intrepid usava-se o QT 4.4, e já li que tem uma diferença de performance notável... Resumindo: valeu a pena!