RHEL: Resize/disable /dev/shm filesystem

# Tested on RHEL 5, 6 & 7


# Notes from www.walkernews.net, www.generation-linux.fr and Red Hat web site

# Thanks to big memory size, nowadays most of RAM is not used at all. It is thus possible
# to allocate a part of this physical memory to be used as storage.

# The name given to a temporary unix file is 'tmpfs'. From Linux 2.6 on this tmpfs is based
# on ramfs. It is possible to fix a limit to its size in a way that system will allocate
# memory dynamically.

# By default, RHEL and most Linux distributions mount tmpfs (a RAM-based temporarily
# filesystem for shared memory) on /dev/shm directory and this temporarily filesystem size
# is always set to be half of the installed memory.

# If that default size is not something expected, we can increase or reduce the /dev/shm
# filesystem size.

# We may drop or disable this temporarily RAM-based filesystem entirely, to prevent it
# from auto-mount during system boot-up, if none of the application in our server is relying
# on shared memory function or explicitly using tmpfs.



# Implementation
# ------------------------------------------------------------------------------------------

# By default, tmpfs is mounted during system start-up and its definition in /etc/fstab looks
# like this (on RHEL 7 there's no specification in /etc/fstab file by default):

   tmpfs                   /dev/shm                tmpfs   defaults        0 0

# What produces, for a system with 16 GB of RAM, a F.S. like this:

df -k
   [...]
   tmpfs                 7.8G     0  7.8G   0% /dev/shm



# Creating own tmpfs
# ------------------------------------------------------------------------------------------

# Create a mount point on /mnt/mytmpfs.

mkdir /mnt/mytmpfs

# Change directory permissions so anyone will be able to read/write/execute on it

chmod 777 /mnt/mytmpfs

# Finally, mount 'tmpfs' the usual way

mount -t tmpfs -o size=256M tmpfs /mnt/mytmpfs

# Remember that if we don't specify the size, it will be half the RAM.

# For this F.S. to be mounted during system boot-up, add it to /etc/fstab file:

   tmpfs                   /
mnt/mytmpfs            tmpfs    defaults,size=256M     0 0



# To increase or decrease /dev/shm filesystem size
# ------------------------------------------------------------------------------------------

# Open /etc/fstab and locate the line of /dev/shm and use the tmpfs size option to specify
# desired size (on RHEL 7, add the line if not present):

# e.g. 512MB:

   tmpfs
                   /dev/shm                tmpfs    defaults,size=512m    0 0

# e.g. 2GB:

   tmpfs
                   /dev/shm                tmpfs    defaults,size=2g      0 0

# To make change effective immediately, run following mount command to remount the
# /dev/shm filesystem:

mount -o remount /dev/shm



# Disabling /dev/shm filesystem
# ------------------------------------------------------------------------------------------

# Actually, Linux allocates the memory for this tmpfs on demand basis, up to the maximum
# size shown in 'df -h' command output. If none of the application is using the /dev/shm,
# this tmpfs in fact does not consume any memory space. So, why disable it?

# Anyway, if you prefer to disable /dev/shm temporarily just execute the umount command:

   umount /dev/shm

# To prevent tmpfs from auto-mount each time RHEL boots up, just comment out or
delete
# corresponding line from /etc/fstab.


# On RHEL 7 API file systems are mounted by systemd. As they constitute an important mean of
# communication kernel<->userspace and userspace<->userspace they are mounted automatically
# without user confirmation. It is possible to disable the automatic mounting of some of them,
# but /dev/shm should always become available, so better leave it mounted ;)
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
Method 2 – Use shell scripts How to install yum cron on a CentOS/RHEL 6.x/7.x
Viewed 5061 times since Tue, Dec 4, 2018
RHEL : How to deal with “CLOSE_WAIT” and “TIME_WAIT” connection
Viewed 29806 times since Thu, Feb 14, 2019
linux-training.be gives you books for free to study Linux
Viewed 5635 times since Sat, Jun 2, 2018
HowTo: Kill TCP Connections in CLOSE_WAIT State
Viewed 17465 times since Thu, Feb 14, 2019
How to Register and Enable Red Hat Subscription, Repositories and Updates for RHEL 7.0 Server
Viewed 15718 times since Mon, Oct 29, 2018
Prosty skaner portów TCP w bash
Viewed 3987 times since Thu, May 24, 2018
How to find your System details using inxi
Viewed 4401 times since Sat, Jun 2, 2018
Open SSL Creating Certificate Signing Request — CSR Generation
Viewed 2571 times since Mon, Feb 18, 2019
Netcat shell zabezpieczony hasłem
Viewed 2904 times since Thu, May 24, 2018
SSH Essentials: Working with SSH Servers, Clients, and Keys
Viewed 5684 times since Wed, Jun 27, 2018