Mục đích của nhiều tập tin trao đổi là gì


28

Trong quá trình cài đặt hầu hết (nếu không phải tất cả) distro của linux, ổ cứng được phân vùng để bao gồm phân vùng trao đổi theo mặc định.

Có thể thay đổi hành vi này với swapon -p priority

Theo các trang người đàn ông, ưu tiên là:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

Tại sao bạn cần nhiều hơn một tập tin trao đổi?
Có phải thông thường các quản trị viên hệ thống sẽ cấu hình nhiều hơn một trao đổi?

Câu trả lời:


47

Có rất nhiều lý do để có nhiều vùng trao đổi (chúng không cần phải là tệp), ngay cả khi bạn chỉ có một trục chính.

Tầm nhìn 20-20: Bạn đã triển khai một máy có một vùng trao đổi duy nhất, rồi cuối cùng nhận ra nó không đủ. Bạn không thể triển khai lại máy theo ý muốn, nhưng bạn có thể tạo một vùng trao đổi khác (có thể là tệp) cho đến khi làm lại bố cục phân vùng trở thành một tùy chọn.

Thay đổi kích thước hoặc di chuyển các vùng hoán đổi: Bạn không thể thay đổi kích thước các vùng hoán đổi (như được đề cập bởi Evan Teitelman ). Và bạn không thể swapoff, tạo một vùng trao đổi mới và sau đó swaponmột lần nữa trừ khi bạn có đủ RAM: swapoffmuốn chuyển tất cả các trang bị tráo đổi sang RAM trước khi rời khỏi vùng trao đổi. Vì vậy, bạn tạo một vùng trao đổi tạm thời, swapoffban đầu, đợi cho đến khi tất cả các trang đã chuyển từ vùng trao đổi cũ sang vùng tạm thời, thay đổi kích thước phân vùng trao đổi ban đầu mkswap, sau đó swaponthay đổi kích thước và swapofftạm thời. Các trang được hoán đổi được sao chép từ vùng trao đổi tạm thời sang trang đã thay đổi kích thước và bạn đã hoàn tất. Nếu bạn đang di chuyển các khu vực trao đổi, bạn thậm chí không cần một khu vực tạm thời. mkswapcái mới, swaponnó, sau đóswapoff cái cũ và mọi thứ đã được di chuyển.

Hoán đổi nhanh: đĩa hiện đại sử dụng ghi bit vùng . Vùng đầu tiên của đĩa là nhanh nhất. Bạn có thể muốn đo đĩa và tạo phân vùng bao phủ chính xác vùng đầu tiên, nhanh nhất của ổ đĩa. Điều này có thể nhỏ hơn kích thước trao đổi dự định của bạn. Vì vậy, bạn thêm nhiều phân vùng trên một số đĩa, sử dụng cùng một kỹ thuật.

Hoán đổi nhanh, phần tiếp theo: thay vào đó, khi bạn biết vùng nhanh nhất của đĩa của mình ở đâu, bạn có thể tạo vùng trao đổi ưu tiên cao trong vùng đầu tiên, vùng hoán đổi ưu tiên thấp hơn trong vùng thứ hai, v.v ... Cách này hệ thống trao đổi của bạn tự động biết để cân bằng tải trên tất cả các vùng đĩa nhanh, thích các vùng nhanh hơn và sử dụng các vùng chậm hơn làm vùng tràn khi có nhu cầu.

Cân bằng tải đối xứng: trên một hệ thống được xây dựng độc đáo với nhiều trục chính (như máy chủ), tôi muốn có nhiều phân vùng trao đổi chiếm phần đầu của mỗi đĩa (để tận dụng ghi bit vùng ). Tất cả chúng đều có các ưu tiên giống hệt nhau, vì vậy kernel sẽ cân bằng tải cho trao đổi. Một trục chính có thể cung cấp cho bạn 100 MB / s, nhưng trao đổi trên tất cả các trục chính có thể cung cấp cho bạn bội số đó. (nói ngây thơ)

Cân bằng tải nhận thức cổ chai: trong thực tế, tuy nhiên, có những nút thắt khác được đưa ra. Vì vậy, ví dụ, một máy chủ 16 đĩa có thể có bốn cổng SATA 6 Gbps, mỗi cổng có hệ số nhân bốn cổng và bốn đĩa chia sẻ băng thông. Nếu bạn biết về điều này, bạn có thể sắp xếp các không gian hoán đổi của mình để Đĩa 1 trên Cổng 1 Chế độ ưu tiên cao nhất, các đĩa thứ hai trên các cổng 1 Biệt4 có mức ưu tiên cao thứ hai, v.v. Điều này sẽ tải hoán đổi cân bằng nhưng không áp đảo số nhân cổng.

Hoán đổi trên các thiết bị có hiệu suất khác nhau: (như Luke đã đề cập) nếu hệ thống của bạn không phải là máy chủ hoàn toàn mới và được phát triển hữu cơ qua nhiều năm, nó có thể có các thiết bị chặn nhanh hơn đáng kể so với các thiết bị khác. Bạn sẽ muốn trao đổi với thiết bị nhanh nhất trước, sau đó sang thiết bị nhanh nhất tiếp theo, v.v.

Cân nhắc về kích thước: (lịch sự của David Kohen ) có thể đặt tất cả trao đổi của bạn trên một ổ đĩa để lại một vài hợp đồng miễn phí trên ổ đĩa (điều này nghe giống như một kịch bản năm 2001, nhưng có rất nhiều thiết bị cũ hoặc nhúng trong đó có thể là một vấn đề). Chia nó trên tất cả các ổ đĩa, và trên hết các lợi ích khác ở trên, bạn sẽ có được mức sử dụng dung lượng ổ đĩa tốt hơn trên mỗi ổ đĩa. Đó là một điều để mất một vài hợp đồng biểu diễn trên mỗi trục chính và một điều nữa là mất 300 hợp đồng biểu diễn từ một đĩa.

Trường hợp khẩn cấp: bạn có chính xác 96 giờ để nộp luận án tiến sĩ và thử nghiệm cuối cùng của bạn (thí nghiệm có khả năng giúp bạn nhận được giải thưởng Nobel cũng như các chữ cái hỗn hợp thú vị sau tên của bạn) đang thu hút bộ nhớ ở mức ấn tượng. Bạn sắp hết trao đổi. Bạn tạo một tệp hoán đổi có mức độ ưu tiên thấp hơn mức ưu tiên của thiết bị trao đổi chính của bạn - hạt nhân sẽ sử dụng nó làm không gian trao đổi tràn. Bạn thậm chí có thể tự động cài đặt hoán đổi để thực hiện việc này cho bạn, vì vậy bạn cũng sẽ có nhiều không gian hoán đổi cho những emacslần chạy LaTeX khổng lồ đó .

Trao đổi trên các phương tiện khác nhau: Linux không thể trao đổi với các thiết bị nhân vật, nhưng có rất nhiều phương tiện, vật lý và ảo khác nhau: SSD (lưu ý: bạn có thể không muốn trao đổi trên SSD), hàng chục loại quay cực kỳ khó khăn đĩa, đĩa mềm (vâng, bạn có thể trao đổi trên đĩa mềm - bạn luôn có thể tự bắn vào chân mình bằng Unix), khối lượng DRBD , khối lượng iSCSI, LVM, phân vùng được mã hóa LUKS, v.v. trao đổi trên LUKS trên LVM trên một cổng ZIP song song qua iSCSI qua Ethernet tổng hợp của IEEE802.3ad? Không vấn đề gì, bạn hư hỏng bẩn thỉu). Đây là những kịch bản thích hợp, và có nghĩa là để hỗ trợ các yêu cầu thích hợp.


Cảm ơn, tôi không quen với việc ghi bit vùng. Tôi tò mò tôi sẽ chuyển phân vùng trao đổi của mình sang cầu xin đĩa, vì vậy tôi đã mở một câu hỏi mới trên superuser.com
spuder 26/07/13

1
Tôi sẽ thêm một lý do lịch sử rằng trong quá khứ, sử dụng một đĩa làm thiết bị trao đổi đôi khi không hiệu quả vì nó sử dụng quá nhiều không gian và làm cho phần còn lại của đĩa trở nên vô dụng hoặc ít hữu ích hơn và chia tách không gian trao đổi trên nhiều thiết bị cung cấp một sự thỏa hiệp giữa một không gian hoán đổi lớn và lượng không gian tiếp giáp có sẵn trên đĩa.
Didi Kohen

Đó vẫn là trường hợp. Ngoài ra, bạn có thể muốn trao đổi của mình chiếm vùng nhanh nhất của đĩa và chỉ có thế. Mà chỉ cung cấp cho bạn rất nhiều không gian để chơi với mỗi trục chính. Mặc dù đó không phải là trường hợp trong lịch sử, bởi vì các ổ cứng được khoanh vùng là một điều 'mới'. (phiên bản 'lịch sử' của tôi là khi bộ nhớ được đo bằng từ ngữ)
Alexios

+1 cho "bạn luôn có thể tự bắn vào chân mình bằng Unix" :-)
DUzun

3

Nhiều ổ đĩa tốc độ. Bạn có thể thiết lập cái nhanh hơn để sử dụng trước, sau đó là cái chậm hơn nếu cái đó thất bại.


3

Bạn không thể mở rộng các tệp hoán đổi (ít nhất là theo như tôi biết) hoặc trao đổi các phân vùng trong khi chúng đang được sử dụng. Nếu bạn đang trên bờ vực lấp đầy khu vực trao đổi có sẵn của mình, bạn có thể phải tạo thêm các bộ trao đổi.

Ngoài ra, nếu một hệ thống cần 4GB dung lượng trao đổi và có hai đơn vị lưu trữ 2 GB, thì nó phải sử dụng ít nhất hai vùng trao đổ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.