This tutorial was executed on a Fedora 21 distribution but will work also on other more recent releases. Fedora has an awesome way to find actual boot time. Only you have to do is to execute the following command in your terminal:

systemd-analyze

The result of this terminal command will be the total boot time. I had some boot time problems, and for my system it showed more than a minute. If you want to know precisely the time each service needs to start, you have to use the following command:

systemd-analyze blame

This command will give you a list of all services and their time to start during the boot in the descending order (from the slowest to the fastest service).

The main reason for this too long boot time was systemd-journald.service. It took about 40 seconds to start. This service is related to file journaling and if you want to know how much of disk space is used for this service, use the following command:

journalctl --disk-usage

In my case, it took about 1.2G. I checked also the content of the folder /var/log/journal, and I was surprised to see a lot of huge files. The main reason for this was the bad configuration of the journald service. To change the default configuration, you have to edit the /etc/systemd/journald.conf file. What I changed in this file was only one line: SystemMaxUse was initially commented, I uncommented it and changed it like this SystemMaxUse=50M. After rebooting the system, the boot time was reduced about 30 seconds.

If you have similar problems with other services, using systemd-analyze blame command you can find out the service taking the most of the boot time. And if it is one of the unnecessary services, you can disable it with sudo systemctl disable service_name.service command. If you want to know more about a service, you can use the following commands to identify its main functions:

systemctl status service_name.service

The last command will give you the path to your service, and you can use it to find the package to which it belongs with:

rpm -qf /usr/lib/systemd/system/service_name.service

That’s it! I hope you enjoyed!