Nhược điểm của việc không có phân vùng trao đổi


8

Gần đây tôi đã cài đặt Ubuntu 10.04 trên máy tính xách tay của mình. Do hạn chế về không gian của SSD, tôi đã không đặt phân vùng trao đổi cho HĐH và tôi có 1,5 GB RAM.

Có một cảnh báo trong khi cài đặt, nhưng tôi nghĩ đó không phải là vấn đề lớn vì mọi thứ đều suôn sẻ.

Về lâu dài, liệu có bất kỳ nhược điểm nào của việc không có phân vùng trao đổi không?


2
Gparted sẽ rất vui khi khắc một vài ổ đĩa gốc của bạn, và thực hiện nó một cách dễ dàng và bất thường.
msw

Câu trả lời:


6

Tôi nghĩ rằng nếu tôi viết cho bạn một câu trả lời cho câu hỏi trước tiên tôi phải giải thích toàn bộ điều hoán đổi một chút ở đây. Xin lỗi vì sự dài dòng của tôi.

Một phân vùng hoán đổi / trao đổi, tương tự như pagefile trong windows, là không gian ổ cứng dành riêng để tạo điều kiện cho việc sử dụng bộ nhớ tốt hơn. Có hai cách sử dụng không gian trao đổi.

  1. Khi không có bộ nhớ ENOUGH cho tất cả các ứng dụng - trong trường hợp điều này xảy ra với một hệ thống không có vùng trao đổi, nó sẽ gây ra lỗi không cấp phát bộ nhớ cho ứng dụng mới yêu cầu các trang bộ nhớ mới - và điều này thường dẫn đến việc chấm dứt chương trình.

  2. Khi một số trang bộ nhớ (bộ nhớ được chia thành 'trang') được sử dụng một thời gian trước đây, nhưng bây giờ không còn được sử dụng nữa, nó sẽ được chuyển trên tệp hoán đổi và bộ nhớ còn lại có thể được sử dụng để làm những việc khác có thể hữu ích hơn ( ví dụ: ngay cả bộ nhớ đệm!) - khi điều này xảy ra trong một hệ thống không có vùng trao đổi, điều này sẽ dẫn đến các trang nhàn rỗi nằm trong bộ nhớ. Điều này không có gì quá nghiêm trọng, vì chúng ta có lượng bộ nhớ khá lớn trong những ngày này.

Và sau đó, vì vậy bây giờ chúng ta có việc sử dụng phân vùng hoán đổi / trao đổi được liệt kê, bao nhiêu thường được khuyến khích? - điều đó phụ thuộc vào chức năng của máy. Nếu là máy tính để bàn, hãy đặt nó thành 1-1,5x bộ nhớ. Nếu đó là một máy chủ, hãy làm tương tự, nhưng lưu ý sử dụng trao đổi, nếu nó được sử dụng nhiều, hãy nâng cấp bộ nhớ.

Như những người khác đã chỉ ra, gparted có thể giúp bạn khắc một số hợp đồng không gian từ phân vùng ext2 / ext3 của bạn, nhưng bạn cũng có thể sử dụng một tệp hoán đổi:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

Bạn nên có

swapfile none swap sw 0 0

trên fstabđể đảm bảo nó được sử dụng trên mỗi lần khởi động lại

Và một điều nữa: Nếu bạn không muốn có không gian hoán đổi nhưng muốn giảm thiểu việc sử dụng trừ khi bộ nhớ của bạn thực sự bị kéo dài ra, bạn có thể thay đổi bộ đệm swappiness của hạt nhân bằng cách thay đổi /proc/sys/vm/swappiness(giá trị, 0-100; mặc định, 60).


Có thể sử dụng để trao đổi khác với những gì bạn đã nêu, chẳng hạn như phân vùng trao đổi đang được sử dụng để tự động lưu trữ tệp kết xuất sự cố. Ngoài ra, kích thước bộ nhớ 1-1,5x không phải là một giá trị được chấp nhận phổ biến. Về lý thuyết, một máy tính có nhiều bộ nhớ sẽ cần ít bộ nhớ hơn để trao đổi, vì nó có RAM X được sử dụng hết và cần nhiều RAM hơn, nó có thể có thể lắp thêm bộ nhớ đó vào RAM có sẵn thay vì trao đổi.
TẤT CẢ NGÀY 6/2/2015

@TOOGAM đó là vào năm 2010, khi mọi người sử dụng những thứ như 2-4GB ram trong máy tính để bàn của họ.
bubu


3

Nếu bạn hết bộ nhớ, thì hành vi không thể đoán trước có thể xảy ra với các chương trình của bạn. Đôi khi kernel sẽ bắt đầu thả bộ nhớ ở những nơi ngẫu nhiên . Nhân sẽ bắt đầu bỏ các quá trình ưu tiên thấp.

Không bộ nhớ ảo nào có thể đánh vần rắc rối lớn, đặc biệt là nếu nó sẽ bắt đầu giảm bộ nhớ khỏi việc giết các tài liệu quan trọng có mức độ ưu tiên thấp đang được xử lý.


3
Điều này sẽ xảy ra bất kể bạn có trao đổi hay không.
Ignacio Vazquez-Abrams

2
Trên thực tế, kernel sẽ không "bắt đầu thả bộ nhớ ở những nơi ngẫu nhiên". Thay vào đó, nó sẽ làm những gì phải làm và bắt đầu giết chết các quy trình được coi là "ít quan trọng hơn" cho đến khi tình hình được cải thiện. Điều này được thực hiện bởi "kẻ giết người OOM". Xem ví dụ: linux-mm.org/OOM_Killer
sleske

Tôi đứng sửa.
Nitrodist

0

Sau khi cài đặt, hãy kiểm tra mức sử dụng bộ nhớ của bạn khi chạy các hoạt động cần nhiều bộ nhớ hoặc chỉ cần mở các ứng dụng 'lớn', như Openoffice.org, giải nén các tệp và như vậy. Nếu bạn thấy rằng tổng bộ nhớ được sử dụng là gần 1,5 GB, thì có lẽ nên có một phân vùng trao đổi hoặc tệp hoán đổi, chỉ trong trường hợp bạn thuận tiện chạy một cái gì đó sử dụng nhiều bộ nhớ và Ubuntu bắt đầu giảm bộ nhớ quan trọng, và có thể thậm chí các phần của kernel (không tốt, thực sự không tốt ...).


Tôi tò mò, thậm chí có thể làm cho linux bỏ các phần của kernel để giải phóng bộ nhớ cho các tiến trình đang chạy không?
Igor Zinov'yev

Có lẽ là không, nhưng bạn biết ý tôi là gì ...
Hello71

AFAIK, hạt nhân Linux luôn nằm trong bộ nhớ. Nó được tải như là phần đầu tiên của chuỗi khởi động và ở lại; bộ nhớ không bao giờ được giải phóng hoặc thậm chí hoán đổi. Tuy nhiên, bạn có thể tải và dỡ bỏ các mô-đun và bộ nhớ đó sẽ được giải phóng (tôi tin), nhưng đó thường chỉ là vài chục kb cho mỗi mô-đun. Hạt nhân cũng duy trì các cấu trúc dữ liệu & bộ đệm nội bộ khác nhau, nó có thể giải phóng một số trong số chúng (mặc dù không chắc chắn).
sleske

0

Không phải là một câu trả lời hoàn chỉnh, nhưng đây là một câu chuyện về một điều thực sự tấn công tôi, ngay cả khi tôi nghĩ rằng tôi có mọi nhược điểm có thể được kiểm soát:

/programming/4567972/error-executing-aapt-all-of-the-surupt Tóm lại, một số công cụ chạy từ các quy trình / ứng dụng Java thực sự lớn sẽ không thể chạy luôn. Tuy nhiên, hầu hết người dùng thông thường sẽ không gặp phải vấn đề này.

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.