Bạn có thể có quá nhiều trao đổi?


16

Tôi chỉ tự hỏi nếu bạn có thể có một phân vùng trao đổi quá lớn. Nếu có, khi nào một phân vùng trao đổi quá lớn? Nhược điểm / tác động xấu của việc có phân vùng trao đổi quá lớn (ngay cả khi tôi có nhiều dung lượng đĩa)?

Nếu không, lợi ích của việc có nhiều hơn không gian hoán đổi được đề xuất là gì?


5
Nhược điểm rõ ràng là bạn lãng phí không gian đĩa. OTOH: nếu bạn có trao đổi "quá nhiều" (giả sử 30 GB trên hệ thống 4GB), thì các ứng dụng hoạt động sai sẽ bị hết bộ nhớ sau đó và điều đó sẽ làm chậm hệ thống của bạn. Các ứng dụng ứng xử có trật tự (không bị rò rỉ bộ nhớ) sẽ không sử dụng được. (Tôi thừa nhận, đây là một chế độ xem đơn giản.)
PerlDuck 18/03/18

Tôi đồng ý với @PerlDuck - "trao đổi quá nhiều" chỉ sử dụng dung lượng đĩa. Hệ thống của bạn sẽ chậm nếu hệ thống bắt đầu sử dụng trao đổi, trong trường hợp đó là chạy ít ứng dụng hơn, ứng dụng trọng lượng nhẹ hơn hoặc nhận thêm RAM
Panther

Tôi biết, vậy nếu bạn có đủ RAM, thì việc sử dụng quá nhiều dung lượng đĩa có bất kỳ nhược điểm nào không? Ngoại trừ các ứng dụng "hành vi sai trái" như PerlDuck nói.
An0n

1
VTD Tất cả các câu hỏi trong Chỉnh sửa biện minh cho việc thay đổi lý do gần đúng từ trùng lặp sang chủ đề quá rộng. OP rõ ràng là bị đánh lừa nhưng meta hoặc một phòng trò chuyện là nơi tốt hơn để thảo luận.
WinEunuuchs2Unix 24/03/18

3
Trong trường hợp mọi người không chắc chắn về những gì @PerlDuck (và Panther) đang nói đến, hãy lưu ý rằng ngay cả khi bạn có không gian đĩa không giới hạn hiệu quả, có nhiều không gian để trao đổi sẽ tạo ra các quy trình phải chấm dứt và nếu không thì sẽ nhanh chóng tự động chấm dứt, làm chậm hệ thống để thu thập dữ liệu trong một thời gian dài trước tiên . Nhận xét của PerlDuck, tôi nghĩ, cũng hoạt động như một câu trả lời. Nếu chúng ta kết thúc việc mở lại câu hỏi này, có lẽ một câu trả lời có thể được thêm vào về những hạn chế của việc trao đổi nhiều hơn mức cần thiết. Vì có nhược điểm.
Eliah Kagan

Câu trả lời:


8

Không

Thoạt nhìn, bạn không thể có quá nhiều trao đổi vì bạn có thể xem trao đổi là một cách để tăng RAM. Thật ra nó không tăng RAM, nó chỉ giả vờ: Nếu bạn có 8 GB RAM thực và dung lượng trao đổi là 24 GB, thì các chương trình của bạn có thể phân bổ và sử dụng tới 8 + 24 = 32 GB bộ nhớ lúc đầu nghe có vẻ tốt

Nhưng

Nếu bạn chạy các ứng dụng bị rò rỉ bộ nhớ hoặc không thực sự được tạo ra để chạy với bộ nhớ 8 GB (ví dụ như chỉnh sửa video), thì các ứng dụng này sẽ bắt đầu sử dụng không gian hoán đổi đó và trao đổi chậm. Các ứng dụng này càng sử dụng nhiều không gian hoán đổi, hệ thống càng bận rộn với việc chỉ di chuyển bộ nhớ xung quanh và từ đĩa. Điều này sẽ làm chậm đáng kể khả năng phản hồi của toàn bộ hệ thống và dẫn đến trải nghiệm người dùng xấu.

Cuối cùng - khi hết dung lượng trao đổi - một số ứng dụng sẽ đối mặt với tình trạng hết bộ nhớ và bị OOM_Killer của kernel giết chết .

Từ wiki :

Trường hợp OOM điển hình trong các máy tính hiện đại xảy ra khi hệ điều hành không thể tạo thêm bất kỳ bộ nhớ ảo nào, bởi vì tất cả các thiết bị sao lưu tiềm năng của nó đã được lấp đầy.

Phần kết luận

Do đó, một nhược điểm của việc có quá nhiều không gian hoán đổi là: bạn càng có nhiều, tình trạng OOM này càng xảy ra muộn và bạn sẽ phải chịu đựng một hệ thống chậm trễ và không phản hồi.

Một nhược điểm rõ ràng khác của khóa học là lãng phí dung lượng đĩa nhưng điều đó có thể không quá quan trọng hiện nay.


+1 để xem xét trường hợp cạnh. Cá nhân tôi không phải là một người hâm mộ hoán đổi lớn vì ngủ đông là dành cho gấu và hệ thống của tôi được giữ quá bận rộn cho việc đó. ;-) Chúc mừng.
Anh Cả Geek

@ElderGeek LOL. Thật ra Eliah Kagan đã khiến tôi biến nhận xét đơn giản của mình thành một câu trả lời. Ông đã thuyết phục tôi rằng nhược điểm đã nói ở trên về việc có quá nhiều trao đổi là một điều rất quan trọng và có thể quan trọng đối với người khác. Tôi với bạn và có ít cấu hình trao đổi (2GB với RAM 8GB) và nó gần như không bao giờ bị chạm vào.
PerlDuck

Tôi đã có kết quả tương tự với các cài đặt tương tự, tôi ước rằng tin đồn hoán đổi 2x cuối cùng sẽ chết.
Anh Cả Geek

5

Không có nhược điểm trực tiếp cho không gian trao đổi lớn. Với cách nó được quản lý bởi kernel, việc tăng lượng không gian hoán đổi trên mức đủ là không có hoặc có tác động không đáng kể đến hiệu suất.

Nhược điểm duy nhất của không gian trao đổi nhiều quá nhiều là bạn không thể sử dụng không gian đó để lưu trữ.


1
@ An0n: Tôi nghĩ rằng sẽ là một nhược điểm khá lớn khi phân bổ tất cả ~ 6 TB hiện được kết nối với máy của tôi dưới dạng không gian trao đổi. Tôi sẽ đặt tất cả âm nhạc của mình ở đâu?
David Foerster

2
@ An0n: Máy tính nào tốt nếu tất cả những gì nó có thể làm là khởi động và sau đó không lưu trữ bất kỳ dữ liệu hữu ích nào? Nghe giống như một máy sưởi không gian đắt tiền.
David Foerster

1
@ An0n: Chắc chắn, tôi đã giả sử nhiều nhưng bạn đang thiếu điểm. Tôi nghĩ rằng chúng ta có thể đồng ý rằng để trở nên hữu ích, máy tính phải có khả năng đạt đến trạng thái hệ thống có thể sử dụng (bao gồm khả năng khởi động) và có quyền truy cập vào bộ lưu trữ mà người dùng có thể sử dụng cho dữ liệu cá nhân của mình. Điều đó đòi hỏi rằng nó không bị chiếm bởi không gian trao đổi.
David Foerster

2
Tất nhiên là tương đối. Cũng giống như "quá nhiều" là tương đối. Nếu tôi có một hệ thống có thể khởi động và tôi phân bổ tất cả không gian trống của mình dưới dạng không gian hoán đổi thì nó không còn hữu ích cho tôi nữa vì thiếu không gian trống cho đến khi tôi thay đổi cấu hình hệ thống theo cách kết thúc ở nhiều không gian trống hơn. Theo nghĩa đó, không gian hoán đổi sẽ "quá nhiều" trong thời gian đó làm cho hệ thống trở nên vô dụng trong thời gian đó. Dù sao, tôi không ở đây để tranh luận về ngữ nghĩa của từ với bạn.
David foerster

1
@ An0n Để gạch chân điểm ở đây, không gian hoán đổi là không gian bạn không thể sử dụng cho bất cứ điều gì khác. Không gian lưu trữ đĩa tốn tiền. Nếu dung lượng ổ đĩa của bạn bị giới hạn (của tôi chỉ có 32 GB), bạn muốn giữ càng nhiều càng tốt để cài đặt chương trình và ghi tệp với nội dung của bạn trong đó, như âm nhạc. Mọi người thường cố gắng giữ trao đổi ở mức tối thiểu vì lý do đó, và không có lý do nào khác. Hoán đổi là thứ mà hệ thống có thể cần để tiếp tục chạy hiệu quả, điều đó không có giá trị đối với người dùng. Nói chung, chúng tôi muốn hệ thống của chúng tôi chỉ sử dụng các tài nguyên cần thiết và để lại cho chúng tôi nhiều thứ để chơi.
Zanna

4

Bạn sẽ không cảm thấy bất kỳ nhược điểm nào khác ngoài không gian trống trên đĩa của bạn, tôi nghĩ rằng ngày nay, quan niệm về gấp đôi lượng ram đã lỗi thời trong phần lớn các hệ thống. Tôi thường khuyên bạn nên sử dụng cùng kích thước ram cho bộ nhớ trao đổi trong máy tính xách tay mặc dù để cho bạn cơ hội ngủ đông máy tính của bạn mà không mất bất kỳ dữ liệu nào do tính chất dễ bay hơi của RAM.

Các trường hợp duy nhất mà tôi sẽ xem xét sử dụng hơn 1 lần kích thước RAM cho phân vùng trao đổi là khi bạn nghĩ rằng bạn sẽ nâng cấp kích thước RAM của mình trong một thời gian ngắn. Hoặc nếu bạn có kế hoạch sử dụng một hệ thống mà bạn sẽ lưu trữ trong một loại bộ nhớ cache thì dung lượng bộ nhớ được sử dụng bởi các chương trình không được sử dụng cùng một lúc.

Hy vọng quan điểm của tôi đã đủ rõ ràng và tôi nhắc lại tôi không nghĩ bạn sẽ gặp bất kỳ vấn đề gì vì có quá nhiều bộ nhớ trao đổi.

Chúc một ngày tốt lành!


2
Tôi hoàn toàn không sử dụng trao đổi nếu RAM> 2-4 Gb trên một máy tính để bàn của một người dùng.
Panther

1
@Panther Tại sao không? Và nó không phải là về cách thức hoặc khi bạn sử dụng nó. Đó là về kích thước và cách sử dụng.
An0n


@ElderGeek Xin chào, không tôi không xem xét nó. Tôi thích câu trả lời của bạn, tôi không biết về vấn đề rò rỉ bộ nhớ!
zurg

2

Ngủ đông cần bao nhiêu SWAP?

Đó là một quan niệm sai lầm rằng bạn cần RAM x 2 cho kích thước SWAP khi bạn sử dụng chế độ ngủ đông. Kích thước trao đổi cần phải là kích thước của RAM đã sử dụng chứ không phải RAM đã cài đặt . Thông thường kích thước trao đổi cần bằng 2/5 RAM đã cài đặt. Để tìm ra dung lượng RAM tối thiểu cần thiết để sử dụng:

$ cat /sys/power/image_size
3153907712

Trên máy RAM 8 GB này cần tối thiểu 3 GB để ngủ đông.

Bạn có thể điều chỉnh các giá trị trong image_sizemột kích thước hoán đổi nhỏ hơn với nguy cơ thất bại. Bạn có thể điều chỉnh nó cho kích thước trao đổi lớn hơn và có thể tăng tốc độ ngủ đông.

Tham khảo: https://wiki.archlinux.org/index.php/Power_manloyment/Suspend_and_hibernate


RAM 16 MB vào năm 1995, các quy tắc khác nhau cho RAM 16 GB vào năm 2018

Trong những ngày bạn có 16 MB Ram, x 2 cho trao đổi 32 MB trên ổ cứng 720 MB của bạn có ý nghĩa. Một chút lịch sử RAM và ổ cứng trong bài viết này của Washington Post năm 1995 .

23 năm sau, một số bài viết kỹ thuật từ năm 1995 (mặc dù tôi không tìm thấy bất kỳ) có thể được tìm thấy để đánh lừa người dùng mới. Tuy nhiên tôi đã tìm thấy một bài viết năm 2007 đề xuất SWAP = RAM x 2 .

Quay trở lại năm 1995 32 MB Trao đổi trong số 760 MB HDD là 4% của HDD. Thật vậy, phân vùng trao đổi có thể đã được sử dụng rất nhiều vào năm 1995. Hôm nay năm 2018, 16 GB RAM x 2 cho 32 GB SWAP trên ổ SSD 256 GB của bạn không có ý nghĩa tương tự như khi nó chiếm 13% SSD. Hôm nay, phân vùng SWAP 8 GB của tôi hoàn toàn không được sử dụng trừ khi tôi buộc nó phải lấp đầy nó khi thử nghiệm OOM-Killer: Google Chrome sẽ chiếm bộ nhớ của tôi đến mức khiến máy tính của tôi bị đóng băng. Tôi có thể làm gì để ngăn chặn điều này? .


+1 để chỉ ra quan niệm sai lầm về quy tắc 2x thường được mời chào là tổng số bunk.
Anh Cả Geek

@ElderGeek Cảm ơn bạn. Tôi đã thêm một phần lịch sử vào khi 16 MB RAM lần 2 cho 32 MB SWAP có thể có ý nghĩa.
WinEunuuchs2Unix

Một điều khác cần xem xét là SSD so với HDD. Chúng ta có muốn đọc / ghi nhiều trên SSD khiến nó nhanh hỏng hơn ở phần đó của SSD không (hay đây là một huyền thoại)? Trên hệ thống ram 32 GB của tôi, tôi đã sử dụng 2 GB Velociraptor Drive cho SWAP nhưng không có ý định ngủ đông, vẫn không chắc liệu điều này có ổn không, có lẽ tôi không thể trao đổi ??? Nhưng nếu tôi ngủ đông thì có lẽ 4GB là đủ, nhưng rất có thể tôi sẽ sử dụng 20GB trình duyệt, và sau đó 4GB sẽ không đủ ???
New Zealand

@NZDev Tôi có trao đổi trên SSD nhưng nó hiếm khi được sử dụng. Lần trước tôi đã kiểm tra nó vẫn còn 100% tuổi thọ sau 1 năm sử dụng. Để xem tỷ lệ phần trăm còn lại của cuộc sống: Askubfox.com/questions/1038701/how-do-i-check-system-health/ mẹo
WinEunuuchs2Unix

1

SWAP là gì:

Không gian hoán đổi trong Linux được sử dụng khi dung lượng bộ nhớ vật lý (RAM) đầy. Nếu hệ thống cần nhiều tài nguyên bộ nhớ hơn và RAM đầy, các trang không hoạt động trong bộ nhớ sẽ được chuyển sang không gian trao đổi. Mặc dù không gian hoán đổi có thể giúp các máy có một lượng RAM nhỏ, nhưng nó không nên được coi là sự thay thế cho nhiều RAM hơn. Không gian hoán đổi được đặt trên các ổ đĩa cứng, có thời gian truy cập chậm hơn bộ nhớ vật lý.

Không gian hoán đổi có thể là phân vùng trao đổi chuyên dụng (được khuyến nghị), tệp hoán đổi hoặc kết hợp phân vùng trao đổi và tệp hoán đổi.

Hoán đổi nên bằng 2 lần RAM vật lý.


Ưu điểm:

Cung cấp không gian tràn khi bộ nhớ của bạn lấp đầy hoàn toàn Có thể di chuyển các vật phẩm hiếm khi cần ra khỏi bộ nhớ tốc độ cao Cho phép bạn ngủ đông

Nhược điểm:

Chiếm dung lượng trên ổ cứng của bạn vì các phân vùng SWAP không thay đổi kích thước một cách linh hoạt Có thể làm tăng hao mòn cho ổ cứng của bạn Không nhất thiết phải cải thiện hiệu suất (xem bên dưới)


Khi phân vùng SWAP "Không giúp đỡ" như trong "không xứng đáng so với bộ nhớ bổ sung":

Nếu Harddrive của bạn chỉ có 5400 vòng / phút và bạn có ít RAM, hãy nói> 2GB. Tại sao ? Bởi vì hệ thống liên tục muốn truy cập vào phân vùng SWAP, cuối cùng nó sẽ trở nên rất chậm. Mặc dù bây giờ bạn có không gian trong bộ nhớ, mọi thứ trong phân vùng SWAP cần phải được di chuyển qua lại. Bởi vì hệ thống sẽ hoạt động chậm, phân bổ vẫn nằm trong phân vùng SWAP. Điều này chỉ có thể được sửa chữa với một khởi động lại. Việc này sẽ mất một lúc vì hệ thống cần xóa mọi thứ khỏi phân vùng SWAP trước khi tắt.


** Kết luận: **

Nếu bạn muốn có thể ngủ đông máy tính của mình, thì bạn nên có một phân vùng SWAP. Kích thước của phân vùng này phải là kích thước của bộ nhớ đã cài đặt của bạn, cộng thêm 10-25% để dành chỗ cho bất kỳ mục nào đã được chuyển sang phân vùng SWAP.

Nếu bạn chỉ muốn tăng hiệu suất nhỏ (và bạn có ít nhất ổ cứng 7200 vòng / phút), thì bạn có thể thêm phân vùng SWAP nếu muốn, nhưng không cần thiết trừ khi bạn có ít hơn 4GB bộ nhớ được cài đặt. Kích thước của nó có thể là bất cứ điều gì bạn muốn. Tuy nhiên tôi khuyên bạn nên tăng gấp đôi RAM làm điểm chính. NẾU bạn có không gian lưu trữ khó khăn.

Nếu bạn có ổ cứng 5400 vòng / phút, thì bạn không nên tạo phân vùng SWAP đơn giản vì nút cổ chai sẽ khiến máy tính của bạn trở nên tồi tệ hơn. Tuy nhiên, nếu bạn hoàn toàn muốn có SWAP, thì bạn vẫn có thể tạo một phân vùng bằng cách sử dụng các hướng dẫn định cỡ tương tự được nêu ở trên - nhưng thay đổi giá trị swappiness thành một cái gì đó thấp hơn nhiều.



Quan điểm của tôi:

Tuy nhiên, trong mọi trường hợp nếu bạn sử dụng Ubuntu làm Hệ điều hành chính để sử dụng hàng ngày, tôi khuyên bạn nên tăng gấp đôi kích thước của RAM. Bởi vì bạn không cài đặt Ubuntu chỉ vì bạn có một máy tính cũ. Nhưng bởi vì bạn muốn sử dụng hệ thống làm HĐH chính của mình.

Thay vì mua một số phần cứng bổ sung nếu cần thay vì điều chỉnh các phân vùng hệ thống để giữ cho nó chạy. Nếu bạn mua một trò chơi, bạn cũng đảm bảo rằng hệ thống của bạn "cập nhật" thay vì điều chỉnh các cài đặt để làm cho nó "Có thể chơi được".

Bạn tốt hơn có thể có thêm không gian, SWAP, tốc độ, sức mạnh thay vì quá ngắn hoặc cần thay đổi kích thước mọi thứ sau này. Vì bạn cần SWAP hay dung lượng, đã mua RAM? Hoặc cần mua ram nhanh vì một khe nhớ hoặc thanh bị hỏng.


Re: Kết luận của bạn Nó không có ý nghĩa, hoặc một cách khác để đặt nó là nơi chúng ta vẽ đường. ví dụ: RAM 8GB cộng với 16GB trao đổi: Điều gì sẽ xảy ra nếu tôi sử dụng 8GB RAM và 9GB trao đổi, thì vẫn không đủ chỗ để ngủ đông. Vì vậy, những gì cho? Nói cách khác, bất kể kích thước của bạn là bao nhiêu, bạn vẫn có thể sử dụng tất cả và hơn thế nữa. Vậy tại sao tập tin Hoán đổi không được cung cấp 2 không gian dành riêng 1 dưới dạng bộ nhớ ảo và không gian còn lại là không gian ngủ đông sẽ là tổng hoặc là 2. Nó không chồng lên tôi và không ai trả lời câu hỏi này.
New Zealand

0

Có một chi phí, thực sự, nhưng rất nhỏ; đối với mỗi "trang" trên đĩa có một bộ đếm tham chiếu và có một vài cấu trúc được liên kết với mọi khu vực trao đổi; Đây là trong bộ nhớ kernel, vì vậy không thể phân trang. Đó là từ 2 đến 16 MB mỗi 4 GB, tùy thuộc vào kiến ​​trúc. Phần còn lại khá năng động, do đó phụ thuộc vào cách sử dụng.

Vì vậy, bạn có thể có rất nhiều, nhưng hãy nhớ rằng chính không gian địa chỉ được phân trang áp đặt một số chi phí trên RAM, và trên hết là có một số theo dõi đang diễn ra cho các trang bị tráo đổi, vì vậy nó không mở rộng quá xa; ngay cả khi áp đặt khá nhiều chi phí, các hệ thống tệp hiệu quả hơn nhiều so với các vùng trao đổi khi xử lý các vùng lớn hơn vì vfs có thể giảm thông tin cấu trúc vào đĩa (thông thường ít nhất là các bảng trang không thể bị tráo đổi, vì các giới hạn phần cứng và vmm có khả năng sử dụng bộ nhớ không thể tráo đổi cho tất cả các sổ sách kế toán).

Tôi không thể nghĩ về bất kỳ nhược điểm nào khác, OTOH có quá ít trao đổi có thể gây ra sự phân mảnh khi hoán đổi các trang, có nghĩa là tìm kiếm nhiều hơn. Khi có nhiều, sau một số điểm nhất định cũng sẽ không có cải tiến.

Hoán đổi nói chung là tài nguyên cuối cùng (ngủ đông sang một bên), vì vậy bạn có thể sẽ không được hưởng lợi từ việc có nhiều dung lượng trao đổi hơn RAM, đặc biệt nếu bạn có trên 4GB RAM và đôi khi còn lớn như RAM quá nhiều (nghĩ là 64 GB) .


Xin lỗi, câu / câu cuối cùng của bạn gây nhầm lẫn, nếu không thì là một tiện ích bổ sung tốt ở trên.
New Zealand

@NZDev bây giờ có tốt hơn không?
Ismael Luceno
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.