Câu hỏi Làm thế nào tôi có thể tắt hoán đổi vĩnh viễn?


Swap làm cho hệ thống của tôi tất cả chậm chạp và tắt nó làm cho mọi thứ mượt mà hơn. Tôi có bộ nhớ RAM 3,5 GB.

Tôi biết cách tắt hoán đổi bằng cách nhập sudo swapoff -a trong thiết bị đầu cuối, nhưng đó là chỉ cho phiên hiện tại, bởi vì sau khi một trao đổi khởi động lại tự quay trở lại. Có cách nào để tắt hoán đổi vĩnh viễn không?


60
2018-03-28 14:06


gốc


AFAIK hoán đổi được sử dụng cho ngủ đông. Chỉ cần nói ' - DanMan
Có, nhưng nó vẫn có thể được sử dụng. Tôi có một kịch bản nhỏ gắn kết phân vùng trao đổi khi hệ thống đi vào chế độ ngủ đông và bỏ gắn kết nó khi nó trở lại. Tệp hoán đổi không cần phải hoạt động trong thời gian chờ đợi. - animaletdesequia
Chỉ cần đặt swapoff -a trong /etc/rc.local và quên điều đó ...;) - user264467
@ user264467: nó là khá trực quan để lại trao đổi kích hoạt chỉ để vô hiệu hóa nó trên mỗi khởi động lại, nó là nhiều sạch hơn để vô hiệu hóa nó một cách tự do. - karatedog


Các câu trả lời:


Tôi có thể đề xuất một cách tiếp cận an toàn hơn không? Bạn không bao giờ biết khi trao đổi có thể giúp bạn tiết kiệm từ đâm. Trong khi trao đổi thực sự làm chậm máy tính của bạn, nếu bạn sử dụng một chương trình ăn lên tất cả RAM của bạn, có khả năng trao đổi có thể giúp bạn tiết kiệm từ một khởi động lại cứng. Khi máy tính bắt đầu trao đổi, bạn sẽ nhận thấy và có thể giết ứng dụng vi phạm.

Vì vậy, thay vì vô hiệu hóa hoán đổi hoàn toàn, chỉ cần đảm bảo hoán đổi hệ điều hành của bạn rất ít khi. Điều này được kiểm soát bởi vm.swappiness thiết lập trong /etc/sysctl.conf. Cài đặt mặc định của Ubuntu là 60 nếu tôi nhớ chính xác đó là quá nhiều cho hầu hết các tình huống và sẽ làm cho bạn bắt đầu trao đổi ngay cả khi RAM vẫn còn có sẵn. Nếu bạn giảm giá trị này, bạn sẽ có thể giữ đường dây an toàn của swap trong khi chỉ sử dụng nó cho trường hợp khẩn cấp. Vì vậy, mở tệp:

sudo nano /etc/sysctl.conf

Và thêm dòng này vào nó:

vm.swappiness=10

Nếu vẫn còn quá nhiều, hãy thay đổi từ 10 thành 1. Bây giờ, sau khi bạn khởi động lại, bạn sẽ chỉ trao đổi khi thật cần thiết và bạn có thể quên nó đi.


113
2018-03-28 15:00



Tôi thích thay đổi swappines, và tôi đã không làm trong nhiều năm. Cảm ơn lời nhắc. sudo upvote turdon! - Darth Egregious
Chỉ cần thêm vào đối số 'tiếp cận an toàn hơn': Khi bạn không có trao đổi và hệ thống hết bộ nhớ, kẻ tấn công OOM (Out Of Memory) của Linux được gọi. Điều này chọn một quá trình dựa trên điểm số 'badness' và sau đó ... giết chết nó (chấm dứt, đóng) không có cơ hội cho ứng dụng lưu thay đổi, dọn dẹp, v.v. Do đó, nếu bạn tắt hoán đổi và hết bộ nhớ, bạn rất tốt có nguy cơ mất việc nếu các quy trình quan trọng đạt điểm kém trong mắt của kẻ giết người OOM. Vì vậy, bạn chỉ nên tắt hoán đổi nếu bạn tự tin rằng bạn sẽ không bao giờ hết bộ nhớ. - Reid
@Reid đáng chú ý chỉ ra rằng, rõ ràng, điều chính xác sẽ xảy ra nếu bạn chạy ra khỏi không gian trao đổi quá. - o0'.
Điều này không thực sự trả lời câu hỏi. Vô hiệu hóa việc hoán đổi hoàn toàn có thể tạo ra nhiều ý nghĩa trên một hệ thống có RAM 16GB hoặc 32GB. Một vài GB bổ sung của trao đổi sẽ không làm bất kỳ tốt trong trường hợp ứng dụng bộ nhớ ăn, trong khi một số lượng lớn trao đổi (ví dụ: 20GB) sẽ mất rất nhiều không gian ổ cứng / SSD. Ngoài ra, hibernating với 32GB RAM là không phải  vui vẻ. - jmiserez
Đối với một số thiết lập, ngay khi bạn hết RAM vật lý và bắt đầu trao đổi, hệ thống sẽ bắt đầu "hút bùn" và trở nên không sử dụng được. Có, về lý thuyết bạn có thể vào và giết người phạm tội, nhưng khi phải mất 20 phút để thay đổi tiêu điểm trong giao diện người dùng và thậm chí lâu hơn để nhận lời nhắc mật khẩu qua SSH, OOMing kết thúc là lựa chọn tốt nhất (tiếp theo là khó khăn khởi động lại, tiếp theo là vào và sửa vấn đề). - BCS


Tìm dòng trong / etc / fstab đề cập đến trao đổi và nhận xét nó. Của tôi là như thế này:

UUID=6880a28d-a9dc-4bfb-ba47-0876b50e96b3 /               ext4    errors=remount-ro 0       1
UUID=7350e6f2-e3a7-4d80-9a95-8741c7db118f /home           ext4    defaults        0       2
UUID=E2E26AD1E26AAA0D /media/windows  ntfs    defaults,umask=007,gid=46 0       0

# Swap a usb extern (3.7 GB):
#/dev/sdb1 none swap sw 0 0

Bạn có thể chỉnh sửa tệp này bằng gedit. Sao lưu nó trước, chỉ trong trường hợp:

sudo cp /etc/fstab /etc/fstab_backup
gksu gedit /etc/fstab

Chỉ cần thêm # vào đầu dòng nơi hoán đổi, và khởi động lại máy tính.

HOẶC LÀ

Hãy thử cách nhận xét dòng lệnh trong mục nhập trao đổi trong /etc/fstab tập tin,

sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

42
2018-03-28 14:10



Tôi nhận được điều này khi tôi nhập gksu gedit /etc/fstab  # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0 - Alex Li
Vì vậy, làm những gì anh ta nói. Nhận xét dòng đầu tiên đề cập đến "trao đổi". : P - cHao


Chỉ cần xóa các mục (hoặc bình luận nó bằng cách sử dụng # ở phía trước của dòng) từ fstab và khởi động lại. Tìm dòng có từ "hoán đổi" trong đó.

sudo nano /etc/fstab

13
2018-03-28 14:10



Điều này cũng sẽ làm việc, nhưng tôi nghĩ là tốt hơn bình luận dòng hơn là loại bỏ nó hoàn toàn, chỉ trong trường hợp bạn muốn hoàn nguyên các thay đổi. - animaletdesequia
Tôi đã chỉnh sửa bài đăng của mình. - mdalacu


Sai .. nếu systemd tìm thấy một phân vùng SWAP trên bất kỳ ổ đĩa nào thì nó sẽ tự động hóa nó. Kỳ lạ là không ai đề cập đến systemd. Giải pháp này khá đơn giản; để vô hiệu hóa hoán đổi vĩnh viễn, bạn phải:

  1. swapoff -a
  2. chỉnh sửa / etc / fstab và nhận xét bất kỳ mục trao đổi nào nếu hiện tại.
  3. chạy: sudo systemctl mask dev-sdXX.swap (trong đó XX là phân vùng trao đổi. Cũng hữu ích để làm điều đó cho tất cả các phân vùng có thể nếu có phân vùng trao đổi trên bất kỳ ổ đĩa nào khác, nó sẽ không gắn kết)

Hòa bình.


4
2017-12-09 19:58