linux redhat + swapoff is stuck not return prompt

6,881

Solution 1

The swapoff command needs to flush all of the swapped memory from the swap file (/dev/mapper/rootvg-swap) back to main memory (or perhaps somewhere else) before it can disable the swap file. This can take time to complete and you may not have sufficient free memory.

You can increase the amount of free swap space that you have by adding more swap files

  • create a swap file/LV depending on what you have available
  • use mkswap to configure it
  • use swapon to enable it

The swapon man page contains more information about multiple swap files that may be helpful in particualar look at priorites.

The safest way to solve your problem is likely to reboot to single user mode and carry out the porcess you outline when the system is not under memory pressure.

The best solution is to size your system appropriately for its workload and to add more memory.

Solution 2

I experienced this problem recently on a Centos 7 VM. I stopped and started swapoff several times because I was impatient and thought "nothing was happening".

On the last effort I tried running swapon --show on a separate terminal a few minutes apart and saw that the amount of swap being used was reducing, albeit at a snail's pace - i.e. 1.5MB/s, so it took about an hour and a quarter to finish as about 6.5GB were in swap - although there was plenty of main memory available. Eventually it finished successfully.

Share:
6,881

Related videos on Youtube

King David
Author by

King David

Updated on September 18, 2022

Comments

  • King David
    King David over 1 year

    I do the following steps in order to increase the swap size

    but when I start with swapoff /dev/mapper/rootvg-swap , then its stuck for along time and not return the prompt

    why we can do to solve this

     swapoff /dev/mapper/rootvg-swap
     lvresize -L +5g  /dev/mapper/rootvg-swap
     mkswap /dev/mapper/rootvg-swap
     swapon /dev/mapper/rootvg-swap
    
    
     vmstat 1
     procs -----------memory---------- ---swap-- -----io---- --system-- ----- cpu------
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0 2027848 127788  28804 18490972  105   38   180   211   25   59 17  6 64 13  0
     1  0 2027848 126944  28812 18490972    0    0     0   124 1073 1491 16  1  82  1  0
     0  0 2027848 126076  28828 18490956    0    0     0   104  727 1236  6  0    94  0  0
     0  0 2027848 126076  28828 18491008    0    0     0     0  452  979  2  0 98  0  0
     1  0 2027696 130960  28828 18486500  480    0   480    92  985 1415 21  4 69  5  0
     0  0 2027696 130984  28844 18486572    0    0     0    43  421  984  1  0 98  1  0
    
    • Ipor Sircer
      Ipor Sircer over 7 years
      How long time? Btw. using 10+GB as swap isn't a good choice.
    • King David
      King David over 7 years
      more then 2-3 min , I stop it with CNTR-C
    • Ipor Sircer
      Ipor Sircer over 7 years
      What would expect? if you using this laaarge amount of swap it need some time to free it. run vmstat 1 and watch the decreasing swap.
    • Ipor Sircer
      Ipor Sircer over 7 years
      vmstat clearly says that you don't have enough free memory for copying the whole swap.
    • King David
      King David over 7 years
      so what is the workaround for this , how to solve this ?
  • Greg Dubicki
    Greg Dubicki over 3 years
    Thanks a lot! I just experienced a very similar behavior of a Centos 7 server where 2GB of swap was being freed for ~ 1 hour. I would not expect this if I hadn't read your answer. 😊