Chúng ta vẫn cần phân vùng trao đổi trên các máy chủ?


37

Tôi đã đọc câu hỏi này , nhưng nó đã được hỏi trong bối cảnh máy chủ không phải máy tính để bàn hoặc máy tính xách tay.

Nếu một lượng RAM tốt được cài đặt trên một máy tính xách tay, giả sử là 8 GB, chúng ta vẫn cần một không gian trao đổi chứ?

Câu trả lời:


33

Có một quan niệm sai lầm phổ biến rằng có một không gian hoán đổi ảnh hưởng tiêu cực đến hiệu suất hệ thống. Điều này là không chính xác. Miễn là bạn có đủ RAM, có một vùng trao đổi bất kể kích thước của nó không ảnh hưởng đến hiệu suất. Điều gì ảnh hưởng đến hiệu suất là thiếu RAM và sử dụng hiệu quả không gian trao đổi.

  1. Nếu bạn không có không gian hoán đổi và hết RAM, nhân sẽ chọn một hoặc nhiều quy trình mà nó cho là ứng cử viên tốt (mặc dù bạn có thể đưa ra một số gợi ý ) và giết chúng.

  2. Nếu bạn có một không gian trao đổi và hết RAM, kernel sẽ chọn các trang bộ nhớ ít sử dụng hơn và đặt chúng vào vùng trao đổi để giải phóng RAM. Điều này sẽ làm chậm hệ thống nhưng các ứng dụng của bạn sẽ không bị ảnh hưởng.

Tôi luôn thích trường hợp 2. vì tôi cảm thấy không thoải mái khi mất các phần hoặc tất cả công việc của mình vì kernel nghĩ rằng các ứng dụng của tôi đáng để giết. Hơn nữa, với kích thước hiện tại của một đĩa trung bình nằm trong phạm vi TB, việc đặt trước một vài phần trăm để trao đổi thường không phải là vấn đề.


Là điểm đầu tiên của bạn thực sự đúng? Nhân sẽ giết các tiến trình đang chạy để giải phóng RAM? Tại sao kernel chỉ sử dụng không gian đĩa thay vì giết các tiến trình trực tiếp?
Donato

4
@Donato Vâng, điểm đầu tiên của tôi là đúng. Nếu không có không gian hoán đổi được cấu hình (tức là đĩa), hạt nhân không được lựa chọn sử dụng không gian đĩa để giải phóng RAM.
jlliagre

và điều gì xảy ra khi tôi kết thúc không gian trao đổi? Rơi lại trong trường hợp 1?
Zac

@Zac Có, trừ khi bạn thực sự vô hiệu hóa bộ nhớ quá mức trong trường hợp quá trình đầu tiên không cấp phát bộ nhớ sẽ bị tổn thương. Lưu ý rằng nếu bạn có một khu vực không gian hoán đổi (đáng kể) được định cấu hình và tình cờ sử dụng phần lớn diện tích đó, có thể bạn sẽ gặp vấn đề nghiêm trọng về hiệu suất ngay từ đầu.
jlliagre

1
@Zac Nếu bạn sử dụng hết không gian hoán đổi của mình, về cơ bản, bạn sẽ ở trong tình huống tương tự như không có không gian hoán đổi ở nơi đầu tiên. Một quá trình trở lên sẽ chết. Họ có thể được chọn bởi kẻ giết người oom hoặc chỉ ở sai địa điểm và sai thời điểm. Thông thường, một hệ thống sản xuất được giám sát đúng cách sẽ kích hoạt cảnh báo và sau đó là phản ứng của quản trị viên trước khi cạn kiệt trao đổi.
jlliagre

9

Nếu bạn có RAM từ 3 GB trở lên, Ubuntu sẽ tự động KHÔNG SỬ DỤNG không gian Hoán đổi vì nó quá đủ cho HĐH.

Bây giờ bạn có thực sự cần một phân vùng trao đổi?

Câu trả lời theo tôi là có. Bởi vì bạn không biết những gì bạn sẽ cài đặt hoặc làm trong tương lai có thể cần đến không gian trao đổi. Ngoài ra nếu bạn dự định sử dụng chế độ ngủ đông, bạn có thể muốn có một số không gian hoán đổi. Bạn thực sự không cần phải có phân vùng trao đổi, nhưng nó được khuyến khích trong trường hợp bạn sử dụng hết bộ nhớ đó trong hoạt động bình thường.

Để biết thêm thông tin về sự cần thiết hoặc không trao đổi qua lại, hãy xem Ubuntu Swap Faq hoặc Swap Yêu cầu


Bạn có một liên kết xác nhận tuyên bố đầu tiên của bạn?
jlliagre 16/2/2015


1
Các tuyên bố blog đang trích dẫn sai câu trả lời của Askunbutu. Không có bằng chứng user4124 là một nhà phát triển Ubuntu. "Sẽ (thường) không sử dụng" khá khác so với "sẽ tự động vô hiệu hóa". Trên thực tế, Ubuntu không bao giờ vô hiệu hóa trao đổi và sẽ sử dụng nó nếu cần, ngay cả khi bạn có 8GB RAM trở lên.
jlliagre 17/2/2015

@jlliagre Điều đó có nghĩa là không gian hoán đổi ở đó, nhưng không được sử dụng. Khi tôi cài đặt Xubfox 14.04, nó đã tạo ra một trao đổi 16 GB và nó chưa bao giờ được sử dụng. xem hình ảnh
Mitch

1
Vui mừng bạn đã sửa trả lời của bạn. "Không sử dụng" chắc chắn không giống như "vô hiệu hóa". Ubuntu không vô hiệu hóa trao đổi và sẽ sử dụng nó nếu cần, bất kể kích thước là bao nhiêu.
jlliagre 17/2/2015

4

Trong khoảng 6 năm trở lại đây, tôi đã sử dụng các hệ thống máy tính để bàn có ít nhất 8GB RAM. Tôi không nhớ một trường hợp khi hệ thống trao đổi bộ nhớ trong sử dụng bình thường - và tôi theo dõi việc sử dụng tài nguyên khá thường xuyên với htop. Ngay cả trong trường hợp khi tôi chạy đồng thời 4 máy ảo (máy chủ) cho mục đích phát triển, đã xảy ra hoán đổi.

Phải nói rằng, nếu các ứng dụng bạn đang chạy bị thiếu bộ nhớ (ví dụ: chỉnh sửa video, chỉnh sửa hình ảnh, thao tác bảng cơ sở dữ liệu lớn, v.v.), bạn có thể phải đối mặt với tình huống hệ thống của bạn có thể hết bộ nhớ. Trong trường hợp đó, có thể mong muốn có một không gian hoán đổi. Hãy nghĩ về nó như một mạng lưới an toàn cuối cùng. Và xem xét khả năng đa terrabyte của các hệ thống ngày nay, một vài gigabyte trong phân vùng trao đổi có giá trị gì? Tốt hơn là an toàn hơn xin lỗi :-)


2

Có không gian hoán đổi luôn là một điều tốt.

Ở đây tôi đang trích dẫn Hướng dẫn nghiên cứu chứng chỉ RHCSA / RHCE của Michael Jang

Không gian hoán đổi Linux

Không gian như vậy được sử dụng để mở rộng dung lượng RAM hiệu quả trên hệ thống, làm bộ nhớ ảo cho các chương trình hiện đang chạy. Nhưng bạn không thể mua thêm RAM và loại bỏ dung lượng trao đổi. Linux di chuyển các chương trình và dữ liệu được sử dụng không thường xuyên để trao đổi không gian ngay cả khi bạn có hàng gigabyte RAM ..

Đối với các hệ thống có dung lượng lên tới 2GB, kích thước không gian hoán đổi mặc định là gấp đôi dung lượng RAM được cài đặt. Trên 2GB, đó là dung lượng RAM + 2GB. Nhưng đó không phải là những quy tắc cứng và nhanh. Các máy trạm có vài GB RAM thường sử dụng rất ít không gian hoán đổi .. nhưng nó có thể được sử dụng thường xuyên hơn trên các hệ thống không được khởi động lại trong nhiều tháng hoặc có nhu cầu lớn từ một số dịch vụ.


1
"Linux di chuyển không thường xuyên các chương trình và dữ liệu được sử dụng để trao đổi không gian ngay cả khi bạn có gigabyte RAM". Tôi giả sử ở đây chúng ta đang nói về mã và dữ liệu được tải trong bộ nhớ. Trong trường hợp bạn có RAM 8GB và chỉ đang chạy các ứng dụng thông thường, tại sao trên trái đất, bất kỳ mã hoặc trang dữ liệu nào, sẽ được phân trang để trao đổi?
Tarik

1

Nó phụ thuộc vào những gì bạn đang chạy trên hệ thống của bạn.

Nếu bạn đang tạo nội dung, có lẽ vẫn nên phân bổ dung lượng trao đổi, vì vậy nếu bạn hết RAM, các quy trình của bạn sẽ bị chậm thay vì bị giết và có khả năng mất việc.

Nếu máy của bạn chỉ đang chạy chương trình, thì bạn không cần hoặc thậm chí muốn trao đổi không gian. Tôi thiết kế và xây dựng nhiều hệ thống hiển thị giống như kiosk phù hợp với cách sử dụng này một cách chính xác. Tôi muốn một quá trình chết đột ngột hơn là chậm, bởi vì sau đó tôi có thể phát hiện ra tình trạng đó và sửa nó.


1

Nếu bạn cần trao đổi hoặc nhiều không gian hoán đổi, bạn có thể tạo các tệp hoán đổi trên hệ thống tệp của mình. Tất nhiên, chúng sẽ không hỗ trợ ngủ đông nhưng đó là cách tiếp cận hợp lý cho một máy tính xách tay có ổ SSD và nhiều RAM.

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.