Lệnh nào có thể được sử dụng để buộc giải phóng mọi thứ trong phân vùng trao đổi trở lại bộ nhớ?


12

Lệnh nào có thể được sử dụng để buộc giải phóng mọi thứ trong phân vùng trao đổi trở lại bộ nhớ?

Giả sử rằng tôi có đủ bộ nhớ.

Câu trả lời:


19

Từ câu hỏi này, hãy hỏi Ubuntu :

Bạn cũng có thể xóa trao đổi của mình bằng cách chạy swapoff -avà sau đó swapon -alà root thay vì khởi động lại để đạt được hiệu quả tương tự.

Như vậy:

$ free -tm
...
Swap:         6439        196       6243
...
$ sudo swapoff -a
$ sudo swapon -a
$ free -tm
...
Swap:         6439          0       6439
...

Như đã lưu ý trong một nhận xét, nếu bạn không có đủ bộ nhớ, swapoffsẽ dẫn đến lỗi "hết bộ nhớ" và trên các quy trình tiêu diệt kernel để phục hồi RAM.


3
Giải thích thêm về điều này, nếu bạn không có đủ RAM có sẵn swapoffsẽ dẫn đến lỗi bộ nhớ và kernel sẽ bắt đầu giết các tiến trình để khôi phục một số. Sử dụng một cách thận trọng.
bahamat

Hy vọng tốt hơn như vậy; linux hoạt động khá vui nhộn khi bạn hết bộ nhớ mà không có hoạt động hoán đổi nào cả ...
Shadur

1

Như đã lưu ý, chỉ cần hủy kích hoạt tất cả các trao đổi sẽ khiến kernel bắt đầu giết chết mọi thứ nếu nó không có đủ bộ nhớ trống. Nếu bạn muốn tránh điều đó, hãy tạo một bộ trao đổi thứ hai trước. Sau đó:

swapon /second/swap/device && swapoff /first/swap/device 
swapon /first/swap/device && swapoff /second/swap/device

Điều này vẫn sẽ trao đổi trong mọi thứ, nhưng nếu không có đủ không gian, nó sẽ được chuyển sang thiết bị trao đổi thứ hai thay vì giết ngẫu nhiên mọi thứ. Sau đó, chỉ cần thay đổi tất cả trở lại.


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.