Introduction
By default, the size of the cPanel-generated /tmp filesystem is 4GB, or 5% of the /usr filesystem size, whichever is smaller. You may wish to increase the size of this filesystem so it can hold more data.
Warnings
We recommend this procedure only be performed by an advanced system administrator and only during a scheduled dedicated time since it requires temporarily stopping the services that write to /tmp.
This procedure only works on servers on which cPanel has generated /tmp. cPanel-generated /tmp filesystems have /dev/loop in their names, for example:
df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 477M 2.4M 449M 1% /tmp
If your server’s current /tmp filesystem does not contain /dev/loop in its name, the filesystem was created outside by cPanel by the server’s operating system or data center, and you will need to seek assistance from your data center with increasing the size of /tmp.
This procedure does not work on servers running in Virtuozzo or VZ environments.
Procedure
Log in as root, either via SSH, or WHM’s Terminal.
Open “/scripts/securetmp” in a text editor
vim /scripts/securetmp
Find and modify the ‘tmpdsksize’ value to the desired size. For example, this sets the value to 5GB:
Note: if you want to add 5 GB to /tmp, you need to calculate the size in kilobytes:
5×1024×1024= 52,42,880 KB
my $tmpdsksize = 5242880
Use “#” characters to disable this section of the script:
my $five_percent_of_available = ( $available * 0.05 );
if ( $five_percent_of_available > $tmpdsksize ) {
$tmpdsksize = $five_percent_of_available;
}my $FOUR_GIG_k = ( 1024 * 1024 * 4 );
if ( $tmpdsksize > $FOUR_GIG_k ) {
$tmpdsksize = $FOUR_GIG_k;
}
After you’re complete, the section should look like:
# my $five_percent_of_available = ( $available * 0.05 );
# if ( $five_percent_of_available > $tmpdsksize ) {
# $tmpdsksize = $five_percent_of_available;
# }# my $FOUR_GIG_k = ( 1024 * 1024 * 4 );
# if ( $tmpdsksize > $FOUR_GIG_k ) {
# $tmpdsksize = $FOUR_GIG_k;
# }
Check which services are currently using /tmp:
lsof | grep /tmp | grep -v deleted
Using the output from lsof, temporarily disable monitoring for the services using /tmp. For example:
whmapi1 configureservice service=cpsrvd enabled=1 monitored=0 whmapi1 configureservice service=mysql enabled=1 monitored=0 whmapi1 configureservice service=httpd enabled=1 monitored=0
Using the output from lsof, stop the services that use /tmp. For example:
/scripts/restartsrv_cpsrvd --stop /scripts/restartsrv_mysql --stop /scripts/restartsrv_httpd --stop
Unmount /tmp and /var/tmp:
umount -l /tmp umount -l /var/tmp
Move /usr/tmpDSK file to another location (in case you need to mount it elsewhere to preserve data):
mv /usr/tmpDSK /usr/tmpDSK_bak
Run this script to create the larger /tmp filesystem:
/scripts/securetmp
During execution, it will ask:
Would you like to secure /tmp & /var/tmp at boot time? (y/n) : Y
Would you like to secure /tmp & /var/tmp now? (y/n) : Y
Choose y for both:
Reload Systemd Configuration
Run the following command to apply the changes:
systemctl daemon-reload
Restart the services you stopped previously. For example:
/scripts/restartsrv_cpsrvd --start /scripts/restartsrv_mysql --start /scripts/restartsrv_httpd --start
Re-enable monitoring for the services. For example:
whmapi1 configureservice service=cpsrvd enabled=1 monitored=1 whmapi1 configureservice service=mysql enabled=1 monitored=1 whmapi1 configureservice service=httpd enabled=1 monitored=1
Conclusion
You’ve successfully increased the /tmp size on your cPanel server. If you run into issues, you can revert by restoring /usr/tmpDSK_bak.