Ubuntu có hỗ trợ định cỡ tệp hoán đổi động không?


13

Tôi không thể tưởng tượng tại sao một tệp hoán đổi cần phải có kích thước cố định. Tại sao không để nó thay đổi kích thước một cách linh hoạt, như tệp hình ảnh ổ cứng cho một hộp ảo?


Linux không hỗ trợ kích thước không gian hoán đổi động trừ khi bạn đếm tùy chọn thêm và xóa toàn bộ không gian hoán đổi trong thời gian chạy. (Cả Windows btw., Ngay cả sau này cũng không.)
David Foerster

Mac có hỗ trợ trao đổi động không?
Tom Mercer

Tôi không có ý kiến. Đó là một hạt nhân hoàn toàn khác mà tôi đã không nghiên cứu. Rất có thể nó tương tự như không gian hoán đổi trong Linux. Dù sao, bạn có thể vui lòng mở một câu hỏi mới Unix & Linux hoặc Hỏi khác nếu bạn có câu hỏi mới hoặc tiếp theo về hạt nhân Darwin của OS X không? Phần bình luận không phù hợp hoặc có nghĩa cho các câu hỏi mới hoặc thảo luận mở rộng. :-) Cảm ơn.
David Foerster

@DavidFoerster trên Windows, bạn có thể đặt kích thước tối thiểu và tối đa cho mỗi tệp trang và Windows sẽ tăng kích thước tệp trang khi cần thiết. tomshardware.com/news/ từ
phuclv

Câu trả lời:


11

Có vẻ như Linux không hỗ trợ kích thước tệp hoán đổi động (ở bất kỳ giá nào, tôi không thể yêu cầu nó phát hiện ra rằng tệp hoán đổi đã thay đổi kích thước mà không có swapoff/ swapon).

Có lẽ dễ dàng hơn để giả định rằng một tệp hoán đổi không thay đổi kích thước tệp một cách linh hoạt khi viết mã để hỗ trợ nó. Tôi cũng không thấy bất kỳ công dụng tuyệt vời nào cho nó. Vì bạn có thể sử dụng nhiều tệp hoán đổi, không có gì ngăn cản bạn tạo thêm tệp hoán đổi khi cần.

Cũng lưu ý đoạn này từ các swaponmanpage :

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

Tôi nghĩ rằng vấn đề tương tự sẽ áp dụng cho một tệp hoán đổi kích thước động.


Có vẻ như điều này là đúng và hoán đổi thậm chí không tự động thay đổi kích thước trao đổi.
Tom Mercer

2

SwapSpace là một tiện ích sẽ cho phép bạn thực hiện trao đổi kích thước động nếu đó là những gì bạn đang tìm kiếm. Tôi tin rằng nó có sẵn trong Ubuntu.


Mặc dù đã có bản phát hành mới cách đây 2 năm , nhưng các phiên bản được đóng gói cho Ubuntu dường như đều cổ xưa. Nó hoạt động tốt như thế nào?
muru

Tôi không thể tưởng tượng rằng phương thức được sử dụng để ghi tệp hoán đổi đã thay đổi nhưng tôi không thể nói chắc chắn. Hoạt động tốt trên debian.
dùng231695

Tôi vẫn bình chọn câu trả lời của bạn vì nó chỉ đơn giản để tạo không gian mới.
dùng231695

Tôi sẽ thử cái này và báo cáo lại.
Tom Mercer

@ user231695 trong khi thật đơn giản để tạo một không gian hoán đổi mới, thật bất tiện và có thể hoàn toàn không khả thi như một giải pháp. Lần duy nhất người dùng muốn thêm một không gian hoán đổi mới là thời điểm trao đổi hiện tại đã đầy. Do đó câu hỏi của tôi cho kích thước động của tập tin trao đổi.
Tom Mercer

1

Tôi biết rằng đã muộn, nhưng tôi nghĩ giải pháp tốt nhất cho hoán đổi động là:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

sau đó thiết lập CONF_SWAPFACTOR=2trong /etc/dphys-swapfilevà cuối cùng

sudo service dphys-swapfile start

Nó không xuất hiện để tự động thay đổi kích thước trao đổi. Trông giống như một tập lệnh để khởi tạo một tập tin hoán đổi có kích thước nhất định mặc định là gấp đôi dung lượng RAM.
Tom Mercer

Xin chào @TomMercer cài đặt hoán đổi và maxswap, theo nhận xét trong tệp: "# đặt kích thước thành giá trị tính toán, lần này kích thước RAM, điều chỉnh động, đảm bảo có đủ trao đổi mà không lãng phí dung lượng đĩa quá mức". "Thích nghi năng động" dường như những gì bạn đang tìm kiếm. Tốt nhất
Denis Pitzalis

Liệu nó có làm cho tệp hoán đổi của tôi thay đổi kích thước giữa, giả sử, 1KB và 16GB, trong khi tôi đang sử dụng HĐH và làm đầy RAM không? Đó là những gì hoán đổi "thay đổi kích thước" có nghĩa là. Tạo một hoán đổi đó là nhiều kích thước RAM không động. Không có điểm nào để có một tệp hoán đổi cho đến khi RAM đầy, và sau đó bạn muốn tệp hoán đổi có kích thước chính xác bằng VRAM bạn đang sử dụng. Nếu bạn đóng các tab hoặc hình ảnh lớn mà bạn đang làm việc, tệp hoán đổi sẽ tự động thay đổi kích thước xuống. Swapfile phải luôn luôn chính xác 100% bằng cách tự động thay đổi kích thước.
Tom Mercer

0

Không gian hoán đổi có thể được thêm vào một hệ thống đang chạy bằng cách sử dụng swaponlệnh. Nó cần một tệp hoán đổi / phân vùng hiện có (không sử dụng). Để tạo một ddtệp , sử dụng lệnh để phân bổ một tệp liền kề, sau đó mkswapthêm thông tin điều khiển chính xác vào tệp / phân vùng.

Để loại bỏ một tập tin hoán đổi, sử dụng swapoff; các tập tin sau đó có thể bị xóa.

Tôi nghi ngờ đó là những gì SwapSpacemà @ user231695 đã đề cập.

Lưu ý rằng hoán đổi có thể là một hoạt động chậm nếu hoán đổi được sử dụng; tất cả dữ liệu phải được chuyển sang khu vực trao đổi khác.

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.