fbpx

Work

CentOS/RHEL 8 as your developer machine. Utilizing 64GB of RAM for performance

by , , revisited on


We have by far the largest RPM repository with NGINX module packages and VMODs for Varnish. If you want to install NGINX, Varnish, and lots of useful performance/security software with smooth yum upgrades for production use, this is the repository for you.
Active subscription is required.

CentOS/RHEL 8 is not only good for server setups. Linux distros, in general, are more favorable as developer machines.
Largely so, because development involves deploying final apps to a Linux server anyway.

Let’s review some of the things you want to consider when using CentOS/RHEL 8 as your developer machine.

Many items will involve leveraging your RAM as much as possible. (I’m using a machine with 64GB RAM for a reference).

Install a mail client

CentOS/RHEL 8 comes with the Evolution email client by default. If you want something modern and fancy, install Mailspring:

sudo dnf install mailspring

Install a Hackable Editor

You will have an IDE of course, but for quick file edits, I prefer something lighter, e.g. Atom (not so light though):

sudo rpm --import https://packagecloud.io/AtomEditor/atom/gpgkey
sudo sh -c 'echo -e "[Atom]\nname=Atom Editor\nbaseurl=https://packagecloud.io/AtomEditor/atom/el/7/\$basearch\nenabled=1\ngpgcheck=0\nrepo_gpgcheck=1\ngpgkey=https://packagecloud.io/AtomEditor/atom/gpgkey" > /etc/yum.repos.d/atom.repo'
sudo dnf install atom

Put /tmp to RAM

You have a lot of RAM, why not have temporary files reside in RAM?

Add the following to /etc/fstab (make sure to update the username), then reboot:

tmpfs                      /tmp                    tmpfs   mode=1777,strictatime,nosuid,nodev                  0  0
tmpfs                      /home/danila/.cache     tmpfs   defaults,relatime,uid=danila,gid=danila,mode=0755   0  0

Put dnf cache to RAM

tmpfs                      /var/cache/dnf          tmpfs   defaults,relatime,uid=root,gid=root,mode=0755       0  0

Run rm -rf /var/cache/dnf/* and attempt to mount the directory via mount -a.

If all is well, then you can see that it’s mounted in df -h output.

Speeding up various apps

I have a few apps, which “misbehave” by placing their caches as some subdirectory within ~/.config data.
They sort of want their stuff in one place, similar to Windows and its Application Data thing.

In Linux systems, we can and should use ~/.cache where applicable.
Moreover, this will allow us to leverage our RAM-based cache.

Create /etc/tmpfiles.d/caches.conf

d /home/danila/.cache/profiler 755 danila danila
d /home/danila/.cache/Mailspring 755 danila danila
d /home/danila/.cache/Upwork 755 danila danila
d /home/danila/.cache/Slack 755 danila danila

Then you can create the dirs now:

systemd-tmpfiles --create caches.conf

For each app, you need to close it, then remove its current cache directory and replace it with a symlink to .cache somewhere:

# Mailspring
rm -rf ~/.config/Mailspring/Cache
ln ~/.cache/Mailspring -s ~/.config/Mailspring/Cache

# Upwork
rm -rf /home/danila/.Upwork/Upwork/UserData/Cache
ln -s /home/danila/.cache/Upwork /home/danila/.Upwork/Upwork/UserData/Cache

# Slack
rm -rf /home/danila/.config/Slack/Cache
ln -s /home/danila/.cache/Slack /home/danila/.config/Slack/Cache

Speedup Jetbrains IDEs

Now that our ~/.cache is mounted in tmpfs, we can simply reconfigure some apps that don’t make use of this “proper” location, to use do the right thing of using it, and speeding them up.

E.g. PyCharm (Community Edition is amazing and free):
https://www.jetbrains.com/help/idea/tuning-the-ide.html#system-directory

Open IDE, then select Help -> Edit Custom Properties…

Then set:

idea.system.path=~/.cache/pycharm
idea.log.path=~/.cache/pycharm/log

After this just restart the IDE.

Desktop Conveniences

Moving from another OS like OS X or Windows, you will absolutely miss something at the bottom (dock).
You will also miss the system tray, or “notification icons” area. This can be solved rather easily with some Gnome extensions:

sudo dnf install gnome-tweaks gnome-shell-extension-dash-to-dock gnome-shell-extension-topicons-plus 

After this, log out from your session and back in. Then enable the extensions in the Tweaks app.

Fix JRE:

cd /usr/lib/jvm/jre
ln -sn lib conf

Read more

  • https://www.jetbrains.com/help/idea/tuning-the-ide.html#logs-directory
  • Eclipse to RAM – https://docs.observium.org/persistent_ramdisk/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.