Tại sao sử dụng trao đổi khi có quá nhiều không gian trống trong RAM?


124

Sử dụng không gian trao đổi thay vì RAM có thể làm chậm đáng kể PC.

Vậy tại sao, khi tôi có quá nhiều RAM có sẵn, hệ thống Linux (Arch) của tôi có sử dụng trao đổi không?

Kiểm tra đầu ra conky của tôi dưới đây:

đầu ra conky

Ngoài ra, đây có thể là nguyên nhân của vấn đề tốc độ và đáp ứng hệ thống mà tôi gặp phải không?

Đầu ra của free -m:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1257       1004        252          0         51        778
-/+ buffers/cache:        174       1082
Swap:          502        144        357

5
Tôi khá chắc chắn rằng tính năng động của vấn đề này đã thay đổi đáng kể khi SSD trở thành chuẩn mực. Mặc dù SSD tiêu dùng thông thường của bạn vẫn chậm hơn rất nhiều so với RAM, nhưng bây giờ vấn đề là cái gì rẻ hơn - RAM $ / GB hoặc SSD $ / GB. SSD trong khi chậm hơn rẻ hơn rất nhiều và trong hầu hết các trường hợp đủ nhanh, do đó, ngay cả việc hoán đổi cũng không làm ảnh hưởng đáng kể đến trải nghiệm người dùng như trước đây với phương tiện quay.
lkraav

7
Đôi khi, nếu bạn đã sử dụng trao đổi trong quá khứ vì RAM đầy đủ, bạn có thể gặp tình huống dữ liệu bị hoán đổi trước đó ở đó vì hiện tại dữ liệu không hữu ích.
Totor

1
Như Totor đã nói. Đôi khi hệ thống sẽ trang một cái gì đó ra (vì bất kỳ lý do gì). Nếu sau đó trang đó được chuyển trở lại bộ nhớ cho thao tác đọc, bản sao trong không gian hoán đổi sẽ không bị xóa. Nếu cùng một trang sau đó được phân trang lại, mà không bị thay đổi, nó có thể làm như vậy mà không cần ghi lại vào đĩa. Các bản sao đã được cập nhật. Nói cách khác, một trang có thể chiếm dung lượng cả trong trao đổi và bộ nhớ chính.
izak

Câu trả lời:


93

Việc các hệ thống Linux sử dụng một số trao đổi là điều bình thường ngay cả khi vẫn còn RAM miễn phí. Nhân Linux sẽ chuyển sang trao đổi các trang bộ nhớ rất hiếm khi được sử dụng (ví dụ: các gettytrường hợp khi bạn chỉ sử dụng X11 và một số trình nền không hoạt động khác).

Việc sử dụng không gian hoán đổi chỉ trở thành vấn đề khi không có đủ RAM và hạt nhân buộc phải liên tục di chuyển các trang bộ nhớ để trao đổi và quay lại RAM, chỉ để các ứng dụng chạy. Trong trường hợp này, các ứng dụng giám sát hệ thống sẽ hiển thị rất nhiều hoạt động I / O của đĩa.

Để so sánh, hệ thống Ubuntu 10.04 của tôi, với hai người dùng đã đăng nhập với các phiên X11 đều chạy máy tính để bàn Gnome, sử dụng ~ 600 MB trao đổi và ~ 1GB RAM (không tính bộ đệm và bộ đệm fs), vì vậy tôi nói rằng số liệu của bạn để trao đổi sử dụng nhìn bình thường.


39
Bằng cách hoán đổi các chương trình không hoạt động, bạn có thêm bộ nhớ cho bộ nhớ đệm tệp. Và điều đó tăng tốc mọi thứ.
jmanning2k

91

Hành vi này có thể được cấu hình bằng cách đặt giá trị của:

/proc/sys/vm/swappiness

Giá trị mặc định là 60. Đặt nó thành 0 có nghĩa là không bao giờ sử dụng trao đổi khi vẫn còn RAM và 100 bị tráo đổi bộ nhớ càng sớm càng tốt.

Để thay đổi giá trị tạm thời (mất khi khởi động lại):

sudo sysctl vm.swappiness=10

Để thay đổi giá trị vĩnh viễn, chỉnh sửa tệp:

/etc/sysctl.conf

là root (ví dụ sudo nano /etc/sysctl.conf) và thay đổi hoặc thêm (nếu không có) dòng:

vm.swappiness

đến giá trị mong muốn. Nếu tệp này không tồn tại (ví dụ: trong Arch Linux), thì hãy thử /etc/sysctl.d/99-sysctl.confthay thế.

Đã có một số tranh luận về việc trao đổi với bộ nhớ trống có sẵn là tốt hay xấu, nhưng trợ giúp Ubuntu thực sự đề xuất giá trị 10 cho các hệ thống Máy tính để bàn . Xem thêm hướng dẫn này về Digital Ocean cho CentOS .


27
Lưu ý rằng việc giảm swappiness không nhất thiết có nghĩa là tăng hiệu suất hoặc phản hồi. Tôi đã thấy các báo cáo về sự gia tăng nhanh chóng chuyển thành hiệu suất tốt hơn. Đừng tin bất cứ điều gì bạn đọc không bao gồm điểm chuẩn và kiểm tra xem điểm chuẩn có sử dụng khối lượng công việc tương tự như của bạn không.
Gilles

Điều này có tồn tại trên toàn bộ khởi động lại? Tôi nghĩ / Proc đã được tái sinh mỗi lần khởi động.
HandyGandy

@HandyGandy: Tôi đã thêm thông tin vào câu trả lời làm thế nào để thay đổi nó vĩnh viễn.
Marcel Promotionberg

@HandyGandy: là pedantic, / Proc không được tạo lại trên mỗi lần khởi động, nhưng thay vào đó, Proc là một hệ thống tệp ảo, vì vậy nó chỉ được "tạo" khi bạn truy cập chúng. Nó hoàn toàn không tồn tại trên đĩa.
Lie Ryan

swappinessgiá trị không ảnh hưởng đến hệ thống của tôi. Ngay cả khi đặt nó thành 0, sẽ tiếp tục di chuyển các trang quan trọng và được sử dụng thường xuyên (ví dụ: chỉ mục IDE của tôi) để hoán đổi khi vẫn còn 2GB ram miễn phí.
bếp

46

Linux bắt đầu hoán đổi trước khi RAM đầy. Điều này được thực hiện để cải thiện hiệu suất và đáp ứng:

  • Hiệu suất được tăng lên vì đôi khi RAM được sử dụng tốt hơn cho bộ đệm đĩa hơn là lưu trữ bộ nhớ chương trình. Vì vậy, tốt hơn hết là bạn nên trao đổi một chương trình không hoạt động trong một thời gian và thay vào đó giữ các tệp thường được sử dụng trong bộ đệm.

  • Khả năng đáp ứng được cải thiện bằng cách hoán đổi các trang khi hệ thống không hoạt động, thay vì khi bộ nhớ đầy và một số chương trình đang chạy và yêu cầu thêm RAM để hoàn thành một tác vụ.

Hoán đổi làm chậm hệ thống, tất nhiên - nhưng thay thế cho việc hoán đổi không phải là hoán đổi, nó có nhiều RAM hơn hoặc sử dụng ít RAM hơn.


Vì vậy, theo một nghĩa nào đó, trao đổi là một biện pháp trong trường hợp ? Đó, và điều ngủ đông ?
tshepang

@Tshepang: Có đủ khả năng trao đổi để phù hợp với bộ nhớ ảo của bạn không phải là trong trường hợp, đó là điều cần thiết (nếu không các chương trình của bạn sẽ bị sập do thiếu bộ nhớ).
Gilles

1
@Tschepang: Kẻ giết người OOM là lý do khiến chúng sụp đổ. (Về mặt kỹ thuật bạn có thể làm mà không cần kẻ giết OOM và không thể phân bổ bất cứ thứ gì, nhưng điều đó sẽ có cơ hội khóa hệ thống; cho các quá trình quan trọng để tiếp tục chạy.)
Gilles

1
Tôi hiểu quan điểm của bạn "hoán đổi các trang khi hệ thống không hoạt động, thay vì khi bộ nhớ đầy", nhưng anh chàng hầu như không sử dụng 15% RAM. Xa gần đầy, phải không? Mặc dù một lần hoán đổi trước đó gây ra bởi RAM đầy đủ có thể đã rời khỏi tình huống này ...
Totor

1
"Linux bắt đầu hoán đổi trước khi RAM đầy" khi nào? chính xác
Yousha Aleayoub

11

Đây là một bài viết cũ, tuy nhiên, tôi vẫn sẽ tự do đưa ra những suy nghĩ của tôi ở đây.

Bắt đầu từ bên dưới, trước tiên Linux sẽ chia bộ nhớ thành các trang (thường là 4K trên mỗi trang trên hệ thống x86_64). Sau đó, bộ nhớ ảo được tạo, có ánh xạ được thực hiện với bộ nhớ vật lý bằng MMU (Bộ quản lý bộ nhớ).

Các quy trình được phân bổ bộ nhớ từ vùng bộ nhớ ảo, vì vậy xin lưu ý, khi bạn xem / Proc / meminfo, bạn sẽ thấy VMalloc * là chi tiết bộ nhớ ảo.

Hãy nói rằng bạn có một quy trình yêu cầu bộ nhớ (giả sử 300MB - trình duyệt web). Quá trình sẽ được phân bổ 300 MB từ bộ nhớ ảo, tuy nhiên, không cần thiết nó được ánh xạ bộ nhớ (được ánh xạ tới bộ nhớ vật lý). Có khái niệm "Sao chép ghi" để quản lý bộ nhớ, theo đó, nếu các quy trình của bạn thực sự sử dụng bộ nhớ được phân bổ từ bộ nhớ ảo (nghĩa là nó ghi vào bộ nhớ), chỉ sau đó nó được ánh xạ vào bộ nhớ vật lý. Điều này hỗ trợ kernel hoạt động tốt trong môi trường nhiều quá trình một cách hiệu quả.

Bộ nhớ cache là gì?

Rất nhiều bộ nhớ được sử dụng bởi các quy trình được chia sẻ. Hãy nói rằng thư viện glibc được sử dụng bởi hầu hết các quy trình. Điểm lưu giữ nhiều bản sao của glibc trong bộ nhớ là gì, khi mọi quá trình có thể truy cập cùng một vị trí bộ nhớ và thực hiện công việc. Các tài nguyên được sử dụng thường xuyên như vậy được giữ trong bộ đệm để khi xử lý yêu cầu, chúng có thể được tham chiếu đến cùng một vị trí bộ nhớ. Điều này giúp tăng tốc quá trình, vì đọc lại glibc (v.v.) từ đĩa sẽ tốn thời gian.

Ở trên là cho các thư viện chia sẻ mỗi lần nói, tương tự cũng đúng với việc đọc tệp. Nếu bạn đọc một tệp lớn (giả sử 100-200MB) lần đầu tiên, sẽ mất rất nhiều thời gian. Tuy nhiên, khi bạn cố gắng và làm lại đọc tương tự, nó sẽ nhanh hơn. Dữ liệu được lưu trong bộ nhớ và việc đọc lại không được thực hiện cho tất cả các khối.

Bộ đệm là gì?

Liên quan đến bộ đệm, khi một tiến trình thực hiện I / O, nó dựa vào bộ đệm của kernel để ghi dữ liệu vào đĩa. Các quy trình, yêu cầu kernel để thực hiện công việc. Vì vậy, thay mặt cho quá trình, kernel ghi dữ liệu vào "bộ đệm" của nó và báo cho quá trình rằng việc ghi được thực hiện. Theo cách không đồng bộ, kernel sẽ tiếp tục đồng bộ dữ liệu này trong bộ đệm vào đĩa. Theo cách này, các quy trình dựa vào kernel để chọn thời gian chính xác để đồng bộ dữ liệu vào đĩa và các quy trình có thể tiếp tục hoạt động trước. Hãy nhớ rằng, đây là I / O chung mà các quy trình thông thường đang làm. Tuy nhiên, các quy trình chuyên biệt, cần xác nhận rằng I / O thực sự được thực hiện trên đĩa có thể sử dụng cơ chế khác để thực hiện I / O trên đĩa. Một số tiện ích mã nguồn mở là libaio. Ngoài ra, có nhiều cách để gọi đồng bộ hóa rõ ràng với FD được mở trong ngữ cảnh quy trình của bạn,

Lỗi trang sau đó là gì?

Hãy xem xét một ví dụ, khi bạn bắt đầu một quá trình (giả sử trình duyệt web), có nhị phân khoảng 300MB. Tuy nhiên, 300 MB hoàn chỉnh của nhị phân trình duyệt web không bắt đầu hoạt động ngay lập tức. Quá trình tiếp tục chuyển từ các chức năng sang chức năng trong mã của nó. Như đã nói trước đó, Bộ nhớ ảo sẽ được tiêu thụ 300 MB, tuy nhiên, không phải tất cả là bộ nhớ được ánh xạ vào bộ nhớ vật lý (RSS - bộ nhớ lưu trú sẽ ít hơn, xem đầu ra hàng đầu). Khi thực thi mã đạt đến một điểm, trong đó bộ nhớ không thực sự được ánh xạ vật lý, lỗi trang sẽ là vấn đề. Kernel sẽ ánh xạ bộ nhớ này thành vật lý, liên kết trang bộ nhớ với quy trình của bạn. Một lỗi trang như vậy được gọi là "Lỗi trang nhỏ". Nói một cách tương tự, khi một quá trình đang thực hiện, các lỗi trang I / O chính được đưa ra.

Khi nào và tại sao hoán đổi xảy ra?

Tình huống 1:

Nội tuyến với các chi tiết ở trên, hãy xem xét một kịch bản khi lượng bộ nhớ tốt trở thành ánh xạ bộ nhớ. Và bây giờ một quá trình bắt đầu, đòi hỏi bộ nhớ. Như đã thảo luận ở trên, kernel sẽ có một số ánh xạ bộ nhớ. Tuy nhiên, không có đủ RAM vật lý để ánh xạ bộ nhớ. Bây giờ, kernel trước tiên sẽ xem xét bộ đệm, nó sẽ có một số trang bộ nhớ cũ không được sử dụng. Nó sẽ chuyển các trang đó lên một phân vùng riêng (được gọi là SWAP), giải phóng một số trang và ánh xạ các trang được giải phóng theo yêu cầu mới sắp tới. Vì đĩa ghi chậm hơn nhiều so với RAM trạng thái rắn, quá trình này mất rất nhiều thời gian và do đó sẽ thấy chậm lại.

Tình huống 2:

Hãy nói rằng bạn thấy rất nhiều bộ nhớ trống có sẵn trong hệ thống. Thậm chí sau đó bạn thấy rằng có rất nhiều trao đổi xảy ra. Có thể có một vấn đề có thể xảy ra của sự phân mảnh bộ nhớ. Hãy xem xét một quy trình, đòi hỏi 50 MB bộ nhớ liền kề từ kernel. (ghi nhớ tiếp giáp). Rõ ràng, hạt nhân sẽ phân bổ các trang ngẫu nhiên cho các quy trình khác nhau và giải phóng một số trong số chúng. Tuy nhiên, khi chúng ta đòi hỏi bộ nhớ liền kề, nó sẽ phải tìm kiếm một đoạn dữ liệu đáp ứng nhu cầu của các quy trình. Nếu nó không thể có được bộ nhớ như vậy, nó sẽ phải thực hiện trao đổi ra khỏi một số trang bộ nhớ cũ và sau đó phân bổ các trang tiếp giáp. Ngay cả trong những trường hợp như vậy, SWAP sẽ xảy ra. Bắt đầu Kernel ver 2.6 trở lên, các vấn đề phân mảnh như vậy đã giảm đáng kể. Tuy nhiên, nếu hệ thống chạy trong một thời gian dài, những vấn đề như vậy vẫn có thể xảy ra.

Xem ví dụ này ( đầu ra vmstat )

2016-10-29 03:55:32 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
2016-10-29 03:55:32  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2016-10-30 03:56:04 19 23 2914752 4692144 3344908 12162628 1660    1  8803 12701 4336 37487 14  7 40 38  0
2016-10-30 03:56:34  3 20 2889296 4977580 3345316 12026752 2109    2  8445 14665 4656 36294 12  7 46 34  0
2016-10-30 03:57:04  1 11 3418868 4939716 3347804 11536356  586 4744  2547  9535 3086 24450  6  3 59 33  0  <<<-----
2016-10-30 03:57:34  3 19 3456252 5449884 3348400 11489728 3291 13371  6407 17957 2997 22556  6  4 66 24  0
2016-10-30 03:58:04  7  6 4194500 5663580 3349552 10857424 2407 12240  3824 14560 2295 18237  4  2 65 29  0
2016-10-30 03:58:34  2 16 4203036 5986864 3348908 10838492 4601 16639  7219 18808 2575 21563  6  4 60 31  0
2016-10-30 03:59:04  3 14 4205652 6059196 3348760 10821448 6624 1597  9431  4357 1750 20471  6  2 60 31  0
2016-10-30 03:59:34  2 24 4206968 6053160 3348876 10777216 5221 2067 10106  7377 1731 19161  3  3 62 32  0
2016-10-30 04:00:04  0 13 4205172 6005084 3348932 10785896 6236 1609 10330  6264 1739 20348  4  2 67 26  0
2016-10-30 04:00:34  4 11 4206420 5996396 3348976 10770220 6554 1253 10382  4896 1964 42981 10  5 58 27  0
2016-10-30 04:01:04  6  4 4177176 5878852 3348988 10825840 8682  765 10126  2716 1731 32949  8  4 69 19  0

@ 2016-10-30 03:57:04, chúng tôi thấy rằng vẫn còn lượng RAM miễn phí tốt. Tuy nhiên, thậm chí sau đó trao đổi đã xảy ra. Chúng tôi đã kiểm tra cây quy trình tại thời điểm này và chúng tôi không thấy bất kỳ quá trình nào sắp tới sẽ đòi hỏi dung lượng bộ nhớ cao như vậy (nhiều hơn bộ nhớ trống). Sự nghi ngờ rõ ràng là Tình huống 2 được mô tả ở trên. Chúng tôi đã kiểm tra nhật ký Buddyinfo và zoneinfo ở trên (Sử dụng echo m> / Proc / sysrq-trigger để kiểm tra những điều này, đầu ra đi vào syslog).

Đối với một hệ thống bình thường của chúng ta, việc so sánh thông tin khu vực thực hiện điều này. Và đồ thị cho bộ nhớ cache / free / low mem cũng được đề cập dưới đây

thông tin khu vực

trao đổi miễn phí thấp miễn phí

Nhìn vào thông tin, rõ ràng có sự phân mảnh bộ nhớ trong nút 0 & nút 1 bình thường (Nút đó là máy dựa trên NUMA, do đó có nhiều nút (xem numactl để kiểm tra thông tin cho hệ thống của bạn)).

Phân mảnh bộ nhớ cũng là một lý do tại sao việc sử dụng trao đổi có thể tăng ngay cả khi có bộ nhớ trống.


2
Bạn nên làm rõ nếu trong "tình huống 2" của mình, quy trình đòi hỏi là phân bổ bộ nhớ vật lý là một trường hợp bất thường. Hầu hết các quá trình chỉ xử lý bộ nhớ ảo trong đó sự phân mảnh gần như không liên quan. Bạn cũng có thể muốn giải thích rõ hơn về cách bạn khẳng định có sự phân mảnh bộ nhớ từ các con số và biểu đồ được hiển thị vì nó không rõ ràng ngay từ cái nhìn đầu tiên. Ồ, và nhân tiện, bạn đang thực sự nói về bộ nhớ tiếp giáp , hy vọng không phải là bộ nhớ truyền nhiễm ;-)
jlliagre

@jlliagre: Cảm ơn các đầu vào. Tôi đang chỉnh sửa lỗi "tiếp giáp".
Anugraha Sinha

5

Có thêm bộ nhớ

Giống như mọi người đã nói, trao đổi có sẽ giúp bạn thoát khỏi bộ nhớ không sử dụng, vì vậy nó có thể giúp bạn có nhiều bộ nhớ hơn.

Ngủ đông

Nhưng trao đổi cũng có thể được sử dụng để ngủ đông có thể thực sự hữu ích khi bạn có máy tính xách tay hoặc muốn tiết kiệm năng lượng và đặt máy tính của bạn và làm việc trong chế độ ngủ đông trước khi rời khỏi công việc. Vì vậy, bạn có thể có một khởi đầu nhanh hơn vào buổi sáng sau.

Có chức năng ngủ đông là một trong những lý do chính mà ngày nay chúng ta vẫn khuyên nên có ít nhất kích thước RAM cho việc hoán đổi. Bằng cách đó, hệ thống có thể đưa tất cả RAM đã sử dụng vào trao đổi và chuyển sang chế độ ngủ đông.

Truyện ngắn

Cẩn thận rằng một khi đã hoán đổi dữ liệu quá trình có thể được đọc trong trao đổi ngay cả sau khi tắt máy, trừ khi trao đổi được mã hóa (tất nhiên).

Sử dụng trao đổi được mã hóa với chế độ ngủ đông không hoạt động vượt trội với tất cả các bản phân phối. Bạn cần sử dụng khóa mã hóa không đổi (một số thiết lập tạo ngẫu nhiên khóa mã hóa không gian hoán đổi ở mỗi lần khởi động) và initrd / initramfs để kích hoạt âm lượng được mã hóa trước khi tiếp tục.


3

Rất nhiều chương trình hiện đại được xây dựng trên các khung cồng kềnh kéo theo rất nhiều rác mà bạn không thực sự cần để chạy chương trình. Việc hoán đổi các trang không sử dụng đó sẽ giải phóng RAM cho bộ nhớ cache và các chương trình thực sự có thể sử dụng RAM.

Tôi nói từ kinh nghiệm cá nhân đau đớn ở đây.

Năm ngoái, tôi đã chuyển một trong những trang web của mình sang một khung máy chủ web mới đầy hứa hẹn được xây dựng trên Firefox. Nghe có vẻ lạ khi xây dựng một hệ thống phía máy chủ trên một chương trình tập trung vào máy khách như Firefox, nhưng nó có một số lợi ích to lớn. Firefox rất mạnh mẽ, cung cấp một số dịch vụ nội bộ thực sự ấn tượng và nó làm giảm sự không phù hợp trở kháng giữa máy chủ và máy khách để có cả hai nền tảng tương tự.

Nhưng có một nhược điểm: Firefox rất lớn. Thực sự lớn. Đây là một loại dự án phiên bản 1.x, vì vậy họ không gặp phải những vấn đề như gỡ bỏ hỗ trợ GUI. [*] Trang web của tôi không cần bất kỳ thứ gì trong số đó, nhưng vì công nghệ VPS mà nhà cung cấp dịch vụ lưu trữ của tôi đã sử dụng không ' Không cho phép trao đổi không gian, mã GUI đó và tất cả các phần khác của Firefox tôi đã không sử dụng RAM thực. Cuối cùng tôi chỉ cần tối thiểu 512 MB RAM để chạy trang mà không gặp sự cố do hết bộ nhớ. Nếu VPS của tôi có một số dung lượng trao đổi, tôi có thể đã nhận được bằng gói 256 MB.

[*] Việc xóa mã GUI khỏi khung công tác thậm chí có thể không được mong muốn, vì một trong những lợi ích của nền tảng này là quét web có độ chính xác cao, vì khung phía máy chủ có thể tải xuống các trang web từ một trang web khác và bạn có thể thao tác chúng giống như bạn sẽ ở phía khách hàng Hãy nghĩ về mashup. Rất nhiều thứ như vậy sẽ bị hỏng nếu bạn không thể "kết xuất" trang web vào một số bối cảnh đồ họa.

Nhân tiện, khung web này về cơ bản đã chết, vì vậy không có tên và điểm xấu hổ nào. Tốt nhất chỉ nên học bài học rộng hơn: có, trao đổi vẫn hữu ích ngay cả khi bạn có hợp đồng RAM miễn phí.


3

Từ Ubuntu Swap FAQ mà Marcel liên kết đến

Là tối thiểu cơ sở, rất khuyến khích rằng không gian trao đổi phải bằng với bộ nhớ vật lý (RAM). Ngoài ra, khuyến nghị rằng dung lượng trao đổi gấp đôi dung lượng bộ nhớ vật lý (RAM) tùy thuộc vào dung lượng ổ cứng

Tôi nghĩ bạn nên tăng không gian trao đổi trong hệ thống của bạn. Việc hoán đổi tăng tốc phân bổ bộ nhớ RAM bằng cách cho phép loại bỏ dữ liệu đã phân trang.


6
Tôi vẫn thấy điều này không thể tin được. Tại sao tôi cần 8 GB trao đổi cho hệ thống 4GB, không bao giờ ngủ đông của mình? Tôi có thực sự cần 128GB trao đổi cho nút tính toán 64 GB của mình không? Tôi thường phân bổ không quá 1GB để trao đổi trừ khi có lý do rất cụ thể.
David Mackffy

2
Nó để lại nhiều không gian hơn cho bộ nhớ cache của ổ cứng chậm trong RAM nhanh như chớp. (Ngoài ra, một số chế độ ngủ đông lưu một bản sao RAM vào vùng trao đổi)
Arafangion

6
@David, @Jader: Hoán đổi = 2 * ram là một hạt dẻ cũ vẫn sống sót sau khi biện minh ban đầu trở nên không liên quan - bây giờ mọi người cố gắng tìm cách biện minh cho con số này, thay vì đưa ra một con số thích hợp cho hệ thống của họ . Xem tại sao chúng ta cần thiết lập không gian hoán đổi lớn gấp đôi bộ nhớ vật lý của chúng ta? .
Gilles

1
@Gilles Tôi gắn bó với vị trí của mình bởi vì tôi đã từng thấy một bài báo có thẩm quyền về chủ đề này mâu thuẫn với một loạt các chuyên gia mà tôi không biết kiến ​​thức của họ sâu sắc như thế nào.
Jader Dias

4
Nếu bạn có thể nhớ các tài liệu tham khảo, xin vui lòng chia sẻ.
Gilles

2

Tôi nghĩ rằng "Gilles" đã đề cập đến một thực tế rằng, trong khi bạn có thể có quá nhiều RAM, trao đổi có thể hữu ích trong những "thiếu sót" nhất định cũng như lưu liên tục một số dữ liệu ngay cả sau khi tắt máy - hoặc tôi có sai khi cho rằng không? kể từ khi RAM bị xóa sau khi khởi động lại) Tôi có sẵn 12GB RAM trên hệ thống của mình và tôi cũng đã suy nghĩ về câu hỏi này trước đây. Tại một thời điểm, khi tôi đã vô hiệu hóa tất cả các trao đổi và chỉ dựa vào RAM của mình, tôi đã có những trải nghiệm cực kỳ khó khăn khi cố gắng gỡ lỗi một số lỗi hệ thống hoặc sự cố, v.v. sau khi tắt hệ thống. Kể từ đó, tôi đã kích hoạt lại phân 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.