CentOS 7ではスワップスペースを有効にできません。

CentOS 7ではスワップスペースを有効にできません。

だから私はオープンソースのチケットリクエストシステムであるOTRSをインストールするためのチュートリアルに従います。したがって、インストールには4GBのスワップスペースが必要です。これは私が使用するコマンドです:

[root@ip-10-0-7-41 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G   14G   37G  27% /
devtmpfs        478M     0  478M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  484M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
[root@ip-10-0-7-41 ~]# fallocate -l 4G /myswap
[root@ip-10-0-7-41 ~]# ls -lh /myswap
-rw-r--r--. 1 root root 4.0G Jul  8 08:44 /myswap
[root@ip-10-0-7-41 ~]# chmod 600 /myswap
[root@ip-10-0-7-41 ~]# mkswap /myswap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=3656082a-148d-4604-96fb-5b4604fa5b2e
[root@ip-10-0-7-41 ~]# swapon /myswap
swapon: /myswap: swapon failed: Invalid argument

ここで確認できます。無効なパラメータエラーです。成功せずに何度も試してみました。誰かがこのエラーを解決する方法を教えてください。 (AWSインスタンスEC2でCentOS 7を実行しています)

[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /

答え1

問題は、割り当てを迅速かつ効率的にするためにfallocate(1)ファイルシステムを使用することであり、ioctls欠点は物理的にスペースを割り当てないが、swapon(2)システムコールには実際のスペースが必要であることです。引用:https://bugzilla.redhat.com/show_bug.cgi?id=1129205

私は以前私の箱にこのような問題があったことがあります。そのため、使用する代わりにリンクの提案に従ってfallocate使用しました。dd

sudo dd if=/dev/zero of=/myswap count=4096 bs=1MiB

そして続けてchmodmkswapswaponコマンドを使用してください。ビンゴ!効率的。

答え2

DigitalOceanのDropletで動作するには、次の手順に従ってください。私はそれをテストしました。必要に応じて金額を変更してください4096

yum install nano -y

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

sudo nano /etc/fstab

次の行を追加してください。

/swapfile   swap    swap    sw  0   0

このコマンドを実行してください

sudo sysctl vm.swappiness=10

sudo nano /etc/sysctl.conf

この行を追加してください

vm.swappiness = 10
vm.vfs_cache_pressure = 50

スワップサイズの確認

swapon --summary
free -h

答え3

私の場合、カーネルログにエラーがありました:

BTRFS warning (device sdd1): swapfile must not be copy-on-write

スペースを割り当てる前にCoW()を無効にすると、chattr +c /swapfile問題を解決できます。

関連情報