如何增加掉期规模?


17

最近,我在服务器中添加了更多内存,现在总共有24GB的RAM。最初,我将操作系统设置为具有2GB的交换大小。

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

当前已为交换分配了2GB的空间,但阅读它似乎并不多。对于24GB的系统,我正在考虑分配至少10GB的交换空间。

我的问题是:操作系统运行时可以执行此操作吗?我需要重新安装吗?我正在使用OpenSuse 11.3

Answers:


23

您决定在安装时创建一个单独的交换分区。您无法在线调整其大小-即使离线调整大小也将花费大量时间,并承担损坏/ dev / sdc2上后续文件系统的潜在风险。

解决此问题的最简单方法是在当前不使用的其他磁盘上创建新的交换分区(或可以脱机进行重新分区),或仅在现有文件系统中使用交换文件(随附)由于文件系统的开销而导致的一些轻微的性能损失)。

添加交换分区/文件的一般过程:

  • 使用以下命令创建类型为82h的新分区或新的8 GB文件 dd if=/dev/zero of=/swapfile bs=1M count=8192
  • 使用mkswap /swapfile或对其进行初始化mkswap /dev/sdXX
  • 使用swapon /swapfileswapon /dev/sdXX即时启用新的交换空间
  • 在/ etc / fstab中添加一个条目,以确保新的交换空间在重启后被激活

您当前的交换分区仍在使用中,为了降低复杂性,您可能希望摆脱它。只需使用swapoff /dev/sdc1禁用其使用的那一刻,并删除参考/etc/fstab


@ synticon-dj谢谢。交换至关重要的磁盘上的数据,我还有另一个磁盘可以使用。您认为将其他磁盘设置为交换会影响性能吗?我需要换掉/ dev / sdc1吗?
x-man

它将以一种或另一种方式影响它-如果/ dev / sdc2被大量使用,则此I / O与交换I / O竞争。如果将另一个磁盘的分区添加为交换磁盘,则只需将交换I / O负载添加到该磁盘。什么对交换性能有利,将不可避免地对受影响磁盘上的其他I / O有害。话虽这么说,没有什么比大量的分页/分页请求对您系统的性能不利。如果看到此消息,请通过添加内存或减少系统的内存占用量来修复它。
the-wabbit 2012年

在不同的主轴上具有两个交换设备将有助于提高交换性能(因为可以同时寻址两个磁盘,而不仅仅是可以读写的磁盘)。但是由于无论如何您都不会因为交换而看到
过多的

1
请注意,如果您使用的是BtrFS,则交换文件将不起作用。两种解决方法是(1)制作回送设备或(2)使用btrfs-swapon
对角线

@ the-wabbit如何实际创建/etc/fstab条目以确保新的交换在重新启动时被激活?
SIGSTACKFAULT

3

在这种情况下,您需要交换吗?我不知道您的系统系统上正在运行什么,但是我尝试在服务器中拥有足够的内存以避免完全交换...(我确实拥有它,但仅作为故障保险,如果我的服务器开始交换,我会购买更多的内存...)


我在这里站在您的一边,交换主要用于防止(易失)内存耗尽的情况下崩溃,并且一旦您开始碰盘,服务器就会受到严重的I / O和/或带宽限制,尽管SSD可以帮助您它们比RAM至少慢10倍,而RAM如今确实很便宜。DDR3 ECC 1333MHz的价格大约是$ 1000的64GB(8x8GB)
Shadok

2

您必须重新分区磁盘。如果我记得很好,请在部分操作中不支持Linux分区的开头,但是您也可以收缩linux文件系统和分区,然后在磁盘末尾进行另一个交换。系统在线时,您无法执行此操作。

替代解决方案是使用大文件作为交换。(现在不知道这是否是个好主意。)


并非每个文件系统都可以缩小,甚至可以脱机。不幸的是,这会影响诸如XFS(xfs.org/index.php/Shrinking_Support)之类的流行选择。
斯文

@Stone这是否意味着重新安装操作系统?
x-man

否。这意味着进行备份:),引导LiveCD,收缩linux文件系统,然后收缩sdc2分区,并在磁盘末端进行新的交换,然后重新引导系统。
2012年

0

1关闭所有交换过程

sudo swapoff -a

2调整交换大小

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3使文件可用作交换

sudo mkswap /swapfile

4激活交换文件

sudo swapon /swapfile

5检查可用的交换量

grep SwapTotal /proc/meminfo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.