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
SPRAWDZONA KONFIGURACJA RSYSLOG I LOGROTATE, JAKO ZEWNĘTRZNEGO SERWERA SYSLOG
Viewed 1267 times since Fri, Nov 30, 2018
logrotate Understanding logrotate utility
Viewed 255 times since Sun, Jan 12, 2020
OEL 7 – How to disable IPv6 on Oracle Linux 7 – Follow Up
Viewed 638 times since Wed, Jul 25, 2018
How to encrypt a partition with DM-Crypt LUKS on Linux
Viewed 522 times since Fri, Jul 13, 2018
RHCS6: Basic operations on clustered services
Viewed 698 times since Sun, Jun 3, 2018
how to list all hard disks in linux from command line
Viewed 437 times since Mon, Jan 28, 2019
How to schedule crontab in Unix Operating Systems
Viewed 513 times since Fri, Jun 8, 2018
BIND for the Small LAN
Viewed 1130 times since Sun, May 20, 2018
Linux Screen
Viewed 757 times since Sat, Jun 2, 2018
6 easy steps to setup offline two factor authentication in Linux
Viewed 215 times since Mon, Apr 6, 2020