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

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

RAM のほかに、十分な RAM がなくなった場合に備えて RAM の内容 (ページ) をスワップインできる、いわゆるスワップがあります。これは仮想メモリです。このスワップはディスク上にあり、ディスクの読み取りと書き込みは RAM からの読み取りよりも遅いため、そこにあるメモリ ページにアクセスすると遅延が発生します。ファイルシステムの作成に加えて、Linux 管理者はスワップの使用とニーズにも細心の注意を払う必要があります。この投稿では、Linux システムにスワップ領域を追加する 3 つの方法について説明しています:

<強い>1.スワップ パーティションの追加
2.スワップ ボリュームの追加
3.スワップ ファイルの追加

1.スワップ パーティションの追加

1. fdisk を実行します または別れ ユーティリティを使用して、未使用の (パーティション分割されていない) ディスク領域が十分にあるディスクを特定します。 swap (82) タイプの新しいパーティションを作成します .例:

# fdisk /dev/sdb
.....
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +1G

必ずパーティション タイプを 82 (Linux スワップ/Solaris) に変更し、最後にパーティション テーブルを保存してください。

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)

Command (m for help): w
The partition table has been altered!

2. コマンド mkswap を実行します fdisk/parted を使用して以前に作成したデバイス/パーティションに対して。オプションで -L LABEL の設定に使用できます スワップパーティション上。

# mkswap -L swap1 /dev/sdb1
Setting up swapspace version 1, size = 1060252 KiB
LABEL=swap1, UUID=f0a884c9-59b3-47d2-9f06-5884f6a33806

3. /etc/fstab ファイルを変更して、起動時に新しいスワップ デバイスをマウントします。

vi /etc/fstab
/dev/sdb1               swap                    swap    defaults        0 0

4. swapon コマンドを実行して、/etc/fstab ファイルにリストされているすべてのスワップ デバイスを有効にし、「swap -s」を使用して追加されたスワップを確認します。

# swapon -a
# swapon -s
Filename				Type		Size	 Used	Priority
/dev/sdb1               partition	1060248	 0	    -1

1.スワップボリュームの追加

1. LVM ボリュームをスワップ領域として追加することもできます。そのためには、既存のボリューム グループのいずれかにボリュームを作成する必要があります。

# vgs
  VG         #PV #LV #SN Attr   VSize  VFree
  vg_geeklab   1   1   0 wz--n- 19.51g 1.94g
# lvcreate -L 1G -n lv_swap vg_geeklab
  Logical volume "lv_swap" created
# ll /dev/mapper/vg_geeklab-lv_swap
lrwxrwxrwx. 1 root root 7 Oct 22 19:36 /dev/mapper/vg_geeklab-lv_swap -> ../dm-1

2. ボリュームに対して mkswap コマンドを実行し、必要に応じて -L オプションを使用してラベルを付けます。

 mkswap -L swap /dev/mapper/vg_geeklab-lv_swap
mkswap: /dev/mapper/vg_geeklab-lv_swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
LABEL=swap, UUID=6d228d34-b67e-4e38-82d4-f068c7bc097e

4. 再起動後もスワップ エントリを保持するには、/etc/fstab ファイルにエントリを作成します。

# vi /etc/fstab
/dev/mapper/vg_geeklab-lv_swap	swap                    swap    defaults        0 0

5. 最後に、swapon コマンドを使用してスワップを有効にします。このコマンドは、スワップ エントリの /etc/fstab ファイルを読み取ります。

# swapon -a
# swapon -s
Filename				Type		Size	 Used	Priority
/dev/dm-1               partition	1048568	 0	    -1

3.スワップ ファイルの追加

1. 新しいパーティションを作成するための空き容量がディスクに残っていない場合、ファイルをスワップとして使用することもできます。これを行うには、dd コマンドを使用して、必要なサイズのファイルを作成します。

# dd if=/dev/zero of=/root/swapfile01 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.73334 s, 159 MB/s

2. /root ディレクトリにスワップ ファイルを作成して、通常のユーザーがそのディレクトリに入ることができないため、安全性を高めました。より安全にするには、ファイルに適切なアクセス許可を適用してください。

# chmod 600 /root/swapfile01

3. mkswap コマンドを実行して、ファイルをスワップ ファイルに変換します。

# mkswap -L swap01 /root/swapfile01
Setting up swapspace version 1, size = 1048572 KiB
LABEL=swap01, UUID=ba5f7163-43f6-4001-84c1-2fca3935301f

4. /etc/fstab ファイルを変更して、新しいスワップ ファイルを追加します。

# vi /etc/fstab
/root/swapfile01        swap                    swap    defaults        0 0

5. swapon コマンドを実行して、/etc/fstab ファイルにリストされているすべてのスワップ デバイスを有効にします。

# swapon -a
# swapon -s
Filename				Type		Size	 Used	Priority
/swap/swapfile01                        file		1048568	0	-1

スワップを削除しています

追加したスワップを削除したい場合は、swapoff コマンドで実行できます。スワップを無効にした後、/etc/fstab ファイルからそれぞれのスワップ エントリを必ず削除してください。

# swapoff -a    ### this will remove all swap(s) mentioned in .etc.fstab
# swapoff /dev/sdb1    ### to remove individual swap

スワップの使用状況を確認する方法

スワップの使用状況を確認するには、次のユーティリティのいずれかを使用できます。
1.無料

# free
             total       used       free     shared    buffers     cached
Mem:       1004608     934036      70572          0      30124     769640
-/+ buffers/cache:     134272     870336
Swap:      1060248          0    1060248

<強い>2. /proc/meminfo

# grep Swap /proc/meminfo
SwapCached:            0 kB
SwapTotal:       1060248 kB
SwapFree:        1060248 kB

<強い>3.トップ

# top
.......
Mem:   1004608k total,   934780k used,    69828k free,    30124k buffers
Swap:  1060248k total,        0k used,  1060248k free,   770156k cached
.......

<強い>4. vmstat

# vmstat
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      0  69828  30124 770156    0    0    40   403   23   22  0  1 99  0  0


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

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

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

  1. Ubuntu18.04でスワップスペースを追加する方法

  2. Debian 11 にスワップ領域を追加する方法

  3. Linux上のOracle Databaseに追加するスワップ領域の量

  1. Linuxでディスク容量を確認する方法

  2. Ubuntu18.04でスワップスペースを追加する方法

  3. Ubuntu20.04でスワップスペースを追加する方法