删除 USB 安装上的交换分区是否安全?

删除 USB 安装上的交换分区是否安全?

我的 32GB USB 驱动器上安装了 Ubuntu 14.04。我最近读到,使用交换分区会导致驱动器的大量读写,从而使操作系统运行缓慢并缩短驱动器的使用寿命。昨天我使用检查了 RAM 使用情况,发现free4GB 中大约有 3GB 被使用,而 1.5GB 的交换分区中,有 900MB 被使用。删除交换分区是否安全?

答案1

请先阅读下文!

嗨,Ian,是的,你可以用 Live Stick 删除 Swap,但我不推荐这样做。这可能会导致问题,具体取决于你使用的操作系统。有一种更好的方法可以做到这一点:启动终端(ctrl + alt + t),然后输入

sudo swapoff /dev/hdb2

将 hdb2 替换为您的交换分区目录。您可以通过输入以下命令获取目录:

sudo fdisk -l

现在您的交换区应该已禁用。然后只需从 /etc/fstab 中删除交换区条目即可。您可以通过输入以下命令执行此操作:

sudo nano /etc/fstab

然后按回车键并删除扩展交换信息的行。

重启!

之后,您可以使用 gparted 或您选择的分区应用程序轻松删除交换分区。但我建议您先让它留在那里。

停下来,在做上面提到的任何事情之前,请阅读以下内容:您说得对,交换分区会产生大量流量,但这可能不会使操作系统变慢。除了删除交换之外,另一种可能性是对其进行自定义:启动终端并运行以下命令:

sudo nano /etc/sysctl.conf

然后添加这一行:

vm.swappiness=10

这会自定义交换,确定何时使用。交换量越低,使用的交换量就越少。10 已经非常少了。因此,只有在绝对没有更多可用 RAM 的最坏情况下才会使用交换。

就是这样!

资料来源:

答案2

不是的,不是的。

但是,您可以运行诸如 Zram 之类的脚本来使用压缩的 RAM 内存作为交换空间,而不是使用物理分区,而不是禁用交换功能,这样您的系统就不会崩溃。

步骤1

在打开的终端中执行以下命令:

sudo nano /etc/init.d/zram

并将以下内容复制/粘贴到文件中:

### BEGIN INIT INFO
# Provides: zram
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:      0 1 6
# Short-Description: Use compressed RAM as in-memory swap
# Description:       Use compressed RAM as in-memory swap
### END INIT INFO

# Author: Antonio Galea <[email protected]>
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization

FRACTION=75

MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
CPUS=`grep -c processor /proc/cpuinfo`
SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))

case "$1" in
  "start")
    param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '`
    modprobe zram $param=$CPUS
    for n in `seq $CPUS`; do
      i=$((n - 1))
      echo $SIZE > /sys/block/zram$i/disksize
      mkswap /dev/zram$i
      swapon /dev/zram$i -p 10
    done
    ;;
  "stop")
    for n in `seq $CPUS`; do
      i=$((n - 1))
      swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" &
    done
    wait
    sleep .5
    modprobe -r zram
    ;;
  *)
    echo "Usage: `basename $0` (start | stop)"
    exit 1
    ;;
esac

然后,按CTRL+o保存文件,按CTRL+x退出文件。


第二步

首先,禁用磁盘交换:

sudo swapoff -a

然后,在打开的终端中执行以下三个命令,使脚本可执行、启动 zram,并使 zram 在启动时自动启动:

sudo chmod +x /etc/init.d/zram
sudo /etc/init.d/zram start
sudo update-rc.d zram defaults

第三步

一旦启用了 zram 交换,就必须编辑 /etc/fstab,以便在启动时不启用磁盘交换:

sudo nano /etc/fstab

找到以以下内容开头的行:

# swap was on . . .

#并在以下行的开头放置一个以将其更改为:

UUID= . . . 

改为

#UUID= . . .

例子:

# swap was on /dev/sdb5 during installation
#UUID=abcd65432-d109-e8765-f43-210987ghi654 none            swap    sw              0       0

或者您也可以删除该行。

最后按CTRL+o保存文件,按CTRL+x退出文件。

无需重启。此外,您可以通过执行以下命令来验证 zram 是否正在使用:

sudo swapon -s

资料来源:

https://wiki.debian.org/ZRam

https://code.google.com/p/compcache/

http://en.wikipedia.org/wiki/Zram


解释:

虽然您可能有 4GB 的 RAM,并且可能不会为您正在运行的应用程序“使用”大量 RAM,但 Linux 会将剩余的 RAM 用作缓存 RAM,从而通过将使用的应用程序缓存到 RAM 而不是在下次打开应用程序时从磁盘分页来减少磁盘活动。当缓存 RAM 填满 RAM 或应用程序需要使用缓存数据占用的 RAM 时,系统会将部分缓存 RAM 交换到交换分区,以释放 RAM 供正在使用的应用程序使用,并将最近使用的应用程序缓存在 RAM 中。

此外,为了休眠和/或暂停,某种形式的交换也是必要的。

由于交换功能,您的系统能够更好地利用可用内存,减少整体磁盘活动,并在高负载下显著提高系统响应能力,同时防止因内存过大导致系统崩溃。

相关内容