Jadi saya mengikuti tutorial untuk menginstal OTRS yang merupakan Sistem Permintaan Tiket Open source. Jadi untuk menginstal, diperlukan: 4GB ruang Swap. Inilah perintah yang saya gunakan:
[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
Anda dapat melihat: Kesalahan argumen tidak valid di sini. Saya mencoba berkali-kali dengan sia-sia untuk mengaktifkannya. Seseorang tolong katakan padaku bagaimana cara memperbaiki kesalahan ini. (Saya menjalankan CentOS 7 ini pada AWS Instance EC2)
[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /
dd
. Harap diingat bahwa tidak semua sistem file mendukung swap atau setidaknya tidak dengan cara yang sama.Jawaban:
Masalahnya
fallocate(1)
adalah bahwa ia menggunakan filesystemioctls
untuk membuat alokasi cepat dan efektif, kerugiannya adalah tidak secara fisik mengalokasikan ruang tetapiswapon(2)
syscall membutuhkan ruang nyata. Referensi: https://bugzilla.redhat.com/show_bug.cgi?id=1129205Saya telah menghadapi masalah ini sebelumnya dengan kotak saya juga. Jadi alih-alih menggunakan
fallocate
, saya menggunakandd
seperti yang disarankan tautandan bergerak maju dengan
chmod
,mkswap
&swapon
perintah. Bingo! Itu berhasil.sumber
dd
tampaknya melakukan lebih banyak pekerjaantime dd if=/dev/zero of=/myswap count=4096 bs=1MiB
membutuhkan waktu 14,003 detik di manatime fallocate -l 4G /swap3
membutuhkan waktu 0,018 detik, tetapi mereka menghasilkan file dengan ukuran yang sama. Saya menduga itufallocate
tidak menyalin dalam nol sepertidd
halnya danswapon
membutuhkan nol itu.swapon: /swapfile: read swap header failed: Invalid argument
mendapat kesalahan ini setelah mencoba keswapon /swapfile
server puppetenterprise centos7Ikuti langkah-langkah ini, ini berfungsi pada tetesan DigitalOcean. Saya diuji. Ubah jumlah 4096 sesuai dengan kebutuhan Anda
tambahkan baris ini:
jalankan perintah ini
tambahkan baris ini
Untuk memverifikasi ukuran swap
sumber
dd
Perintah saya adalahdd if=/dev/zero of=/swapfile count=4 bs=1GiB
karena saya tidak dapat repot menghitung mebibytes di gibibytes jikadd
dapat melakukannya untuk saya. Tahukah Anda bahwa pada zaman dahulu kala orang mengekspresikannya dalam kibibytes dan menghitungnya dengan tangan untuk gibibytes? Luar biasa!bs=
bukan cara yang tepat untuk melakukan itu, karena memiliki konsekuensi yang tidak diinginkan, seperti efisiensi yang menyakitkan dan mungkin tidak bekerja pada sebagian besar host biaya rendah. Jika Anda hanya malas, gunakancount_bytes
dan biarkandd
lakukan untuk Anda berdua matematika dan memilih ukuran blok yang efisien:dd if=/dev/zero of=/swapfile count=4GiB iflag=count_bytes
=)iflag=count_bytes
merupakan peningkatan yang sangat baik untuk komentar Anda. Dan saya tidak malas, saya peduli tentang keterbacaan. Dalam waktu 6 bulan ketika saya membaca skrip saya lagi (atau ketika pengelola berikutnya datang), pembaca harus memahami apa yang sedang terjadi. Bukan hanya komputer yang membaca kode, manusia juga membaca kode!