だから私はオープンソースのチケットリクエストシステムである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
そして続けてchmod
、mkswap
&swapon
コマンドを使用してください。ビンゴ!効率的。
答え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
問題を解決できます。