Linux Commands

Linux Ulimit Command

There can be more than one user on a single machine. The available resources of the system might be omitted by a single user (willingly or unwillingly). Such a situation could create trouble for all the other users on the system. To avoid this, we need to create restrictions for the users so that they would only get what they need. The Linux ulimit command enables us to limit the available resources of the system for different users.  This command could help in resource allocation as per requirements in the most appropriate way.

In this article, we will provide you with multiple illustrations to understand the implementation of the ulimit command in Linux.

Example#1: Using the Ulimit Command to Find the Available Resources for the Current User

The first and basic usage of the ulimit command would be projected in this example. We will find out the availability status of the Linux resources for the currently signed-in user.

Launch the terminal and write the following command to get the limit for the present consumer.

omar@omar-VirtualBox:~$ ulimit

Hit Enter key to find the output.

unlimited

As the output shows, the currently logged-in user has unlimited access to the resources.

Example # 2: Finding the Detailed Resource’s Accessibility for the Presently Logged-in Consumer

The above example finds us the limit available for the resources of the user, but it doesn’t provide us with the details of the resources that are accessible.

For checking out the details of all the resources available for the user, we need to write -a with the ulimit command. This will give us access to all of the resources available to current consumers. If you want to locate the details of the available resources for the user other than the currently logged-in user, you have to provide the username after the -a flag. For the time being, we are finding it for the present user so we do not need to write a username.

omar@omar-VirtualBox:~$ ulimit -a

After running the command, we will be provided with a list of resources and the available limit for the presently signed-in Linux user. Also, it has facilitated us with various flags that can be supplied with the ulimit command to find the limit for a specific resource.

real-time non-blocking time  (microseconds, -R) unlimited

core file size              (blocks, -c) 0

data seg size               (kbytes, -d) unlimited

scheduling priority                 (-e) 0

file size                   (blocks, -f) unlimited

pending signals                     (-i) 15207

max locked memory           (kbytes, -l) 502304

max memory size             (kbytes, -m) unlimited

open files                          (-n) 1024

pipe size                (512 bytes, -p) 8

POSIX message queues         (bytes, -q) 819200

real-time priority                  (-r) 0

stack size                  (kbytes, -s) 8192

cpu time                   (seconds, -t) unlimited

max user processes                  (-u) 15207

virtual memory              (kbytes, -v) unlimited

file locks                          (-x) unlimited

We will practice some of these commands here.

If you want to check the available limit of the core file size for the current user, you need to input this command:

omar@omar-VirtualBox:~$ ulimit -c

0

The outcome tells us that the available limit of the core file size for the Linux user is 0.

We can limit this file size by giving a limit value with the –c flag.

omar@omar-VirtualBox:~$ ulimit –c 10

Now, the available limit of the core file size for the current consumer is restricted to 10.

For checking the data seg size, use the flag –d with the ulimit command.

omar@omar-VirtualBox:~$ ulimit -d

unlimited

Now, we will alter this limit.

omar@omar-VirtualBox:~$ ulimit –d 12

We will find the file size with flag –f, pipe size with flag –p, and max user process with –u by running these commands one by one on the terminal.

For checking the file size limit, write the command:

omar@omar-VirtualBox:~$ ulimit -f

unlimited

The user limit for pipe size can be checked by this command:

omar@omar-VirtualBox:~$ ulimit -p

8

You can get the max user process by the following command:

omar@omar-VirtualBox:~$ ulimit -u

15207

Similarly, you can find any of the resource’s availability for the current user individually by using the appropriate flag for that particular resource.

Soft Limits and Hard Limits in Linux

The limits in Linux are divided into two categories: soft limits and hard limits. The Hard limits are limits that are set only by the root user for all the other users. Whereas, the soft limits are the limits that can be changed by any user by using the ulimit command but can be adjusted only up to the max hard limit set by the root user.

Example # 3: Using the ulimit Command to Find the Hard Limit

We can display the hard limit values for the currently logged-in user by using the flag –H with the ulimit command. For this we need to write the following command on the terminal:

omar@omar-VirtualBox:~$ ulimit –H

The output displays the hard limit value set by the root user for the current Linux user.

unlimited

We can also combine above mentioned flags with the –H flag to find the limit for a specific resource. We will practice some of the commands here.

To find the hard limit for the stack size, we need to write the following command on the terminal:

omar@omar-VirtualBox:~$ ulimit –Hs

unlimited

For checking the hard limit for pipe size, combine –H and –p.

omar@omar-VirtualBox:~$ ulimit –Hp

8

A hard limit for max memory size could be obtained by this command:

omar@omar-VirtualBox:~$ ulimit –Hm

unlimited

Similarly, you can find the hard limit for any of the system’s resources for the current user.

Example # 4: Using the ulimit Command to Find the Soft Limit

Apart from checking the hard limits for the user, you can find out the soft limits as well.  For checking the soft limit, the flag to be used is –S with the ulimit command.

omar@omar-VirtualBox:~$ ulimit –S

Running the command will get us the soft limit for the presently signed-in Linux user.

unlimited

Likewise, with the hard limit, we can also find the soft limit for a specific system resource by giving the appropriate flag combined with the –S flag along with the ulimit command.

To get the soft limit for the open files, we will run the following command:

omar@omar-VirtualBox:~$ ulimit –Sn

1024

The soft limit for the pending signals can be acquired by this command:

omar@omar-VirtualBox:~$ ulimit –Si

15207

In the same way, you can find all other soft limits for any of the required resources of the system for a specific user.

Conclusion

You have learned how to utilize the Linux ulimit command from this tutorial. We have discussed the basic utilization of the ulimit command as well as the flags that are available to directly find the individual resource available for the current user. Also, the two types of limits have been practiced in this guide. The combination of the soft and hard limits with other flags is explained with the practical implementation in Linux.

About the author

Omar Farooq

Hello Readers, I am Omar and I have been writing technical articles from last decade. You can check out my writing pieces.