GNU/Linux >> Linux の 問題 >  >> Linux

Linux でスワップ領域を増やす 3 つの方法

デフォルトの物理メモリでは、特定のタスクやプロセスを処理するには不十分な場合があります。プロセスがスワップ空間の内外でより多くのメモリをスワップしている可能性があります。この投稿は、Linux システムでスワップ メモリを増やす方法を説明するのに役立ちます。

この投稿では 3 つの異なる方法について説明しますが、これらのオプションのいずれかを使用できるかどうかは、各ケースで利用できるかどうかによって異なります。

方法 #1 :新しいディスクを使用する

1. 利用可能なストレージから Linux インスタンスに新しいディスクを追加します。

2. 新しいディスクがインスタンスに提示され、OS がそれを検出したら、以下のコマンドを実行して、この新しいディスクに新しいスワップ領域/パーティションを作成します。ディスクの残りのスペースは、必要に応じて他のファイル システムに使用できることに注意してください。

$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-104857566, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-104857566, default = 104857566) or {+-}size{KMGTP}: 4096000    ### Select the desired size
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200    ### Type L to list all the FS types an select the Linux Swap.
Changed type of partition to 'Linux swap'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

3. 次のコマンドを実行して、パーティション テーブルの変更をリロードします。

$ sudo partprobe /dev/sdb

4. 作成したばかりの新しいパーティションに新しいスワップ領域を作成します:

$ sudo mkswap /dev/sdb1
Setting up swapspace version 1, size = 1020 KiB
no label, UUID=eeb4e9e0-386f-4fbd-919a-130e2c17079e

5. スワップ エントリを /etc/fstab に追加します。 この手順では以下に示すようにファイルを作成します。最適な推奨事項は、名前の代わりにパーティションの UUID を使用することです。

UUID=1a50efd3-ddc6-4dab-b3ad-xxxxxxxx      swap        swap        defaults,_netdev,x-initrd.mount    0  0  

6. インスタンス用に作成された新しいスワップ領域をロードして、必要に応じて使用を開始します。以下のコマンドを発行する必要があります。

# sudo swapon -a

7. スワップ デバイスを一覧表示するには、以下のコマンドを実行します。

# sudo swapon -s

8. 最後に、以下のコマンドを実行して、これをサーバーの initramfs に追加します。

# sudo dracut -f -v

方法 # 2 :OS ディスク上の新しいパーティション

1. 元のディスクに新しいパーティションを作成します。これは、空き領域がある場合にのみ適用されます。空き領域は次のコマンドで確認できます。

$ sudo parted /dev/sda print free
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 50.0GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 211MB 210MB fat16 EFI System Partition boot
2 211MB 8801MB 8590MB linux-swap(v1)
3 8801MB 50.0GB 41.2GB xfs
50.0GB 50.0GB 1032kB Free Space        ### Free space

2. 空き容量がある場合は、次のコマンドを使用して元のディスクに新しいパーティションを作成します。

$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (4-128, default 4): 4
First sector (34-98566110, default = 97675264) or {+-}size{KMGTP}:     ### Press 'Enter' for default
Last sector (97675264-98566110, default = 98566110) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE
3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem 8301 Linux reserved
8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap
a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot
bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home
bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5
c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT
eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit

Hex code or GUID (L to show codes, Enter = 8300): 8200     ### Choose Linux Swap type.
Changed type of partition to 'Linux swap'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 98566144 sectors, 47.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 25B6B886-EA7F-4DE1-9260-979D9F34D17F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 98566110
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI System Partition
2 1050624 17827839 8.0 GiB 8200
3 17827840 97675263 38.1 GiB 0700
4 97675264 98566110 435.0 MiB 8200 Linux swap    ### New Partition

3. 次のコマンドを実行して、パーティション テーブルの変更をリロードします。

$ sudo partprobe /dev/sda

4. 元のディスクに作成されたばかりの新しいパーティションに新しいスワップ領域を作成します。

$ sudo mkswap /dev/sda4
Setting up swapspace version 1, size = 1020 KiB
no label, UUID=eeb4e9e0-386f-4fbd-919a-130e2c17079e

5. スワップ エントリを /etc/fstab に追加します。 このステップで以下に示すようにファイルします。

UUID=1a50efd3-ddc6-4dab-b3ad-xxxxxxxx    swap     swap         defaults,_netdev,x-initrd.mount  0  0

6. インスタンス用に作成された新しいスワップ領域をロードします。

$ sudo swapon -a

7. スワップ デバイスを一覧表示するには、以下のコマンドを実行します。

# sudo swapon -s
注意 :この方法を使用する場合、将来、パーティション #3 により多くのスペースが必要になった場合、最後のパーティション (スワップ パーティション) を削除して、パーティション #3 を拡張できるようにする必要があることを考慮してください。

方法 # 3 :スワップ ファイルを作成します。

1. 現在のファイル システム (ルートなど) にスワップ ファイルを作成します。このため、新しいディレクトリを作成できます。

$ sudo mkdir /swap

2. この新しいディレクトリに新しいファイルを作成します。この例では、2Gb の新しいファイルが作成されます。

$ sudo dd if=/dev/zero of=/swap/swapfile1 bs=1M count=2048

3. 作成されたファイルに新しいスワップ領域を作成します。

$ sudo mkswap  /swap/swapfile1

4. ファイルのアクセス許可を変更します。

$ sudo chmod 600 /swap/swapfile1

5. 以下の手順に従って、スワップ パーティションを /etc/fstab ファイルに追加します。

/swap/swapfile1    swap   swap      defaults       0 0

6. インスタンス用に作成された新しいスワップ領域をロードします。

$ sudo swapon -a

7. スワップ デバイスを一覧表示するには、以下のコマンドを実行します。

$ sudo swapon -s

インスタンスが使用できる新しいスワップ領域は、以下のコマンドで確認できます。

$ sudo free -m
total used free shared buff/cache available
Mem: 14763 256 11898 65 2608 14102
Swap: 12661 0 12661          ### Total Swap area


Linux
  1. Linuxシステムのスワップスペースの概要

  2. Linuxでスワップスペースを作成または増やす方法

  3. Linuxでスワップパーティションを管理する方法

  1. UNIX / Linux:dd、mkswap、および swapon を使用してスワップ領域を追加する 2 つの方法

  2. Linux でスワップ領域を増やす方法

  3. Linux:スワップ パーティションを作成しませんか?

  1. Linux でのスワップ領域管理の初心者向けガイド

  2. Linux でスワップ領域を追加する方法

  3. Linux で LVM スワップ パーティションを拡張する方法