Tweaks for a better performance
Ubuntu, by default, provides cool desktop environment with some default settings which may consume much resource in the system. Tips here are to speed up Ubuntu, and they are valid for most versions of Ubuntu and can also be applied in Linux Mint and other Ubuntu based distributions.
Last update: 2022-06-22
Table of Content
Ubuntu comes with cool effects, but it consumes system resource. Turn it off is a good way to increase system performance.
Open a terminal and enter this command:
gsettings set org.gnome.desktop.interface enable-animations false
Reduce startup applications#
First make all startup applications visible, because in Ubuntu, most of them are hidden by default:
cd /etc/xdg/autostart/ sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop
Now check the Startup Applications, uncheck what you don’t need, for example:
- Evolution Alarm
- Orca Screen Reader
- Ubuntu Report
- Update Notifier
Delay the execution by adding
sleep x; before the execution command of the applications.
Add user to
To skip entering password on
sudo command, add current user to
sudoers with the rule
sudo bash -c "echo '$USER ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/$USER"
Use a faster installation method#
Ubuntu contacts to many repos to download, update its packages. Choose the best mirror server is a good way to speed up system update or application installation.
In Software & Updates → Ubuntu Software → Download From and choose Select Best Server.
No language translation
Suppressing the language translation while updating will slightly increase the
apt update speed. To do that, open the following file:
sudo nano /etc/apt/apt.conf.d/00aptitude
And add the following line at the end of this file:
apt-fastis a shell script wrapper for
apt-get that improves updated and package download speed by downloading packages from multiple connections simultaneously. Install
apt-fast via official PPA using the following commands:
sudo add-apt-repository ppa:apt-fast/stable && \ sudo apt update && \ sudo apt install -y apt-fast
First, add new repo to source list:
sudo bash -c 'echo "deb http://ppa.launchpad.net/apt-fast/stable/ubuntu bionic main" > /etc/apt/sources.list.d/apt-fast.list'
then use non-interactive method:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys A2166B8DE8BDC3367D1901C11EE2FF37CA8DA16B && \ sudo apt update && \ sudo DEBIAN_FRONTEND=noninteractive apt install -y apt-fast
Add alias for
echo 'alias sudo="sudo "' >> ~/.bash_aliases && \ echo 'alias apt=apt-fast' >> ~/.bash_aliases && \ echo 'alias apt-get=apt-fast' >> ~/.bash_aliases && \ sudo bash -c 'echo "alias apt=apt-fast" >> /root/.bash_aliases' && \ sudo bash -c 'echo "alias apt-get=apt-fast" >> /root/.bash_aliases'
Source the bash file if you want the alias gets effective immediately:
Disable unattended update#
Ubuntu has a feature named Unattended Upgrades, which installs the latest security (and others) updates automatically whenever they are available. It comes pre-installed and enabled by default in the recent Ubuntu versions. While this feature helps to keep the Ubuntu system up-to-date, it is also quite annoying sometimes.
To disable unattended upgrades on Ubuntu and its derivatives, run:
sudo dpkg-reconfigure unattended-upgrades
No and hit
ENTER to disable unattended upgrades.
Change network connection priority#
If machine is connected to Wi-Fi and Ethernet simultaneously, here is a method to set priority connection.
ifmetric tool which can be used to change the metric of any interface:
sudo apt install -y ifmetric
To use this, first see the metrics using route command:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0 0.0.0.0 10.42.0.2 0.0.0.0 UG 600 0 0 wlan0
The interface with lower metric is preferred for Internet.
eth0 has lower metric, so it will be preferred over
If you want to prefer
wlan0, then lower its metric:
sudo ifmetric wlan0 50
Now, the routing table would look like:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 wlan0 0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
Now Linux will be using
wlan0 for Internet. The change will be reflected immediately.
Install a lightweight Desktop Environment#
By default, Ubuntu uses GNOME 3 and GDM3, however, they are too heavy. Many users have reported that they can save 1 GB of RAM when using a lightweight desktop environment, such as LXDE, LXQt, XFCE.
Here are some choices:
MATE is a lightweight desktop based on GNOME2 base code, it’s fully open source and a very nice option.
sudo apt install ubuntu-mate-core
Lubuntu is another lightweight option which I recommend if your system is low on resources or if you are giving new life to an older computer. Install it using this command:
sudo apt install lubuntu-core
Xubuntu is an Ubuntu derivative based on the Xfce desktop environment that is light, simple, stable, but it’s also highly customizable. If you want to try it, use the following command:
sudo apt install xubuntu-core
When asked, select
lightdm as the Desktop Manager, instead of
Missing packages in a minimal installation
The most happened issue is missing
fbdev which shown in the log:
... (WW) Warning, couldn't open module fbdev (EE) Failed to load module "fbdev" (module does not exist, 0) ... Fatal server error: (EE) no screens found(EE) ...
sudo apt install xserver-xorg-video-fbdev
Keep the cache in RAM#
Computers with at least 12 GB of memory (RAM), will probably benefit by shrinking the cache less aggressively.
sudo gedit admin:///etc/sysctl.conf
Add below lines at the bottom of the file:
# keep the cache vm.vfs_cache_pressure=50
Use temporary folder in RAM#
tmpfs and mount
/tmp on it:
sudo cp -v /usr/share/systemd/tmp.mount /etc/systemd/system/ sudo systemctl enable tmp.mount
Disable Firewall log#
You usually don’t care about this kind of log, so let it go:
sudo ufw logging off
Disable journal feature#
Only disable journal feature on a separated disk which contains only build source code and data.
A journaling file system is a file system that keeps track of changes not yet committed to the file system. In the event of a system crash or power failure, such file systems can be brought back online more quickly with a lower likelihood of becoming corrupted.
On build server machine, system failure is rare, so you can disable this journaling feature.
ESC on boot, then select Advanced Boot option → recovery mode.
In the Recovery Menu, select
root to enter the command line mode.
Trigger the emergency mount, and then turn off the journal feature on the target disk:
echo "u" > /proc/sysrq-trigger tune2fs -O ^has_journal /dev/<disk>
debugfs -R features /dev/<disk>
If you are disabling on a data storage, do not need to go to Recovert mode. Just unmount the disk and use above tools with sudo. E.g.:
sudo umount /dev/sda sudo tune2fs -O ^has_journal /dev/sda
Disable access time#
Linux writes the access time every you read a file. It’s the very rare program indeed that relies on access time, so disabling access time is safe virtually everywhere.
To disable access time, add
noatime into the mount option in
/etc/fstab on the target device.
/dev/disk/by-uuid/<uuid> /mnt/work auto nosuid,nodev,noatime,nofail,x-gvfs-show 0 0
Remove Grub timeout#
The grub gives you 10 seconds to change between dual boot OS or to go in recovery. This time can be reduced, by entering below command to open grub configuration:
sudo gedit /etc/default/grub &
And update the settings: