Existem duas configurações de kernel que podem ajudar consideravelmente, mesmo sem usar outras ferramentas:
diz ao kernel do Linux o quão agressivamente ele deve usar o swap. Citando o artigo da Wikipédia:
Swappiness is a property for the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive. A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space. The default value is 60, and for most desktop systems, setting it to 100 may affect the overall performance, whereas setting it lower (even 0) may improve interactivity (decreasing response latency.)
vfs_cache_pressure
Citações de vm.txt :
Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.
At the default value of vfs_cache_pressure=100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. ...
Ao definir swappiness
high (como 100), o kernel move tudo o que não precisa para trocar, liberando memória RAM para armazenar arquivos em cache. E definindo vfs_cache_pressure
menor (digamos para 50, não para 0!), Ele favorecerá o armazenamento em cache dos arquivos em vez de manter os dados do aplicativo na RAM.
(Eu trabalho em um grande projeto Java e toda vez que eu o executo, ele precisou de muita memória RAM e liberou o cache de disco, então da próxima vez que eu compilei o projeto tudo foi lido do disco novamente. Ao ajustar essas duas configurações , Eu consigo manter as fontes e a saída compilada armazenada em cache na RAM, o que acelera consideravelmente o processo.)