hoán đổi không có hiệu lực, / Proc / hoán đổi vẫn trống


10

Máy chủ Ubuntu của tôi có bộ nhớ không quá 512 MB. Nó không đủ để chạy Node.js + MongoDB.

Do đó tôi quyết định thêm một tập tin trao đổi:

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.69263 s, 229 MB/s
# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=3c64da32-d0b4-49e5-92db-fba961b8ae28
# swapon /root/myswapfile

Không có thông báo lỗi => thành công!

Tệp hoán đổi mới bây giờ sẽ được liệt kê, nhưng nó không phải là :

# swapon -s
Filename                Type        Size    Used    Priority

(danh sách trống)

Làm thế nào tôi có thể làm cho nó hoạt động? Điều gì có thể là lý do cho việc hoán đổi mất tích?


1
Cố gắng di chuyển tập tin hoán đổi vào thư mục gốc của phân vùng aka/
2707974

1
Khi tôi dùng thử lần đầu tiên, tôi đã thử nó với /
exchangefile

2
Thay đổi chmod 600 /root/myswapfileswapon /root/myswapfile
hoán vị

1
Điều đó không giúp ... Thông báo thú vị: Tôi cần trao đổi trước khi trao đổi, mặc dù trao đổi không bao giờ xuất hiện trong danh sách.
dùng22611

3
không freehiển thị bất kỳ việc sử dụng trao đổi?
mdd

Câu trả lời:


4

Đầu tiên, xóa tệp hoán đổi ban đầu của bạn:

sudo rm /myswapfile

Tiếp theo, chạy từng lệnh sau một:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile

Đầu ra phải tương tự như sau:

-rw------- 1 root root 1.0G Aug  3 18:20 /swapfile

Bây giờ, chạy các lệnh sau:

sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s

Bây giờ, chỉnh sửa / etc / fstab để thay đổi vĩnh viễn:

sudo nano /etc/fstab

và thêm dòng sau vào cuối tập tin:

/swapfile    none            swap    sw              0       0

Nhấn CTRL+ ovà sau đó nhấn ENTERđể lưu tệp.

Nhấn CTRL+ xđể thoát nano.

nguồn: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ub Ubuntu-14-04


Nếu điều đó vẫn không hoạt động, bạn có thể muốn kiểm tra swappiness:

cat /proc/sys/vm/swappiness

Lệnh này sẽ trả về một số. Mặc định là 60.

Nếu không có đầu ra, hãy chạy từng lệnh sau:

sudo sysctl vm.swappiness=60
echo "vm.swappiness = 60" | tee -a /etc/sysctl.conf

Điều -a quan trọng là sau teehoặc bạn sẽ ghi đè lên toàn bộ tệp !!!


1

Sử dụng fdiskđể tạo ra một trao đổi. Thêm một phân vùng mới, chọn trao đổi Linux, viết các thay đổi. mkswap /dev/sd? Bạn cần thêm nó vào của bạn /etc/fstab/. Thay đổi XXX thành UUID trao đổi.

UUID=XXX none            swap    sw              0       0

Chạy swapon -ađể làm cho nó có sẵn từ /etc/fstab.


1

Tập tin hoán đổi của bạn phải ở trong / hoán đổi với 600 quyền.

#moving file and changing rights
sudo mv /root/myswapfile /myswapfile
sudo chmod 600 /myswapfile

sudo mkswap /myswapfile

thêm tập tin trao đổi. Tôi nghĩ bạn quên lệnh này

sudo swapon /myswapfile
#check swap is working
sudo swapon -s

1
Lệnh chmod cần phải có sudo chmod 600.... Nó cũng có thể có giá trị làm cho nó sở hữu bởi root : sudo chown root:root ....
Wilf

1
Nếu bạn thấy bài đăng chính của @ user22611, hãy xem anh ấy làm việc như root.
UNIm95

1
makeswapmkswap
dùng22611

1
@ user22611 có. Bạn đúng rồi. mkswap và chmod.
UNIm95

1
@ UNIm95 - bạn có thể chỉnh sửa bài đăng của mình để khắc phục những sự cố này ....
Wilf

-1

bạn có thể làm điều này:

sudo umount -a
gedit /etc/fstab

và viết vào nơi trao đổi là thế này:

/proc/swap     proc   default  errors=noremount     1

và sau đó là:

sudo mount -a

và sau đó chạy gpart và đặt ổ đĩa trao đổi là trao đổi, và gắn nó vào ổ đĩa gốc, và nó có thể hoạt động tốt theo cách này.


4
Ơ ... không bỏ qua sudo umount -aMỌI THỨ? (có thể phá vỡ nội dung nếu đang sử dụng) Nếu bạn đang cố gắng ngắt kết nối những thứ trao đổi hiện có trước tiên, có thể tốt hơn là tìm thấy chúng mountvà sau đó ngắt kết nối chúng một cách cụ thể hoặc sử dụng sudo swapoff -a.
Wilf

1
đó là những gì tôi đã làm không phá vỡ bất kỳ thứ gì bạn đã làm, và đó là điều duy nhất để làm.
Michael

2
Chạy umount -athực sự là một ý tưởng thực sự ngu ngốc. Hủy kết nối những gì bạn cần để ngắt kết nối, không phải tất cả mọi thứ.
pzkpfw
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.