it-swarm-vi.tech

Bao nhiêu dung lượng SWAP trên hệ thống 2-4GB?

Tôi nên quyết định kích thước nào để thực hiện trao đổi trên máy Linux mới (Debian) với RAM 2-4 GB? Tôi có thực sự cần không gian hoán đổi?

53
C. Ross

Có rất nhiều cách bạn có thể tìm ra bao nhiêu trao đổi sử dụng trong một máy. Các đề xuất phổ biến sử dụng các công thức dựa trên RAM như 2 x RAM, 1,5 x RAM, 1 x RAM, 0,75 x RAM và 0,55 RAM. Nhiều lần các công thức được thay đổi tùy thuộc vào số lượng RAM (vì vậy một hộp có 1GB RAM có thể sử dụng 2 x RAM hoán đổi (2GB), trong khi a hộp có 16GB ram có thể sử dụng .5 x RAM hoán đổi (8GB).

Một điều khác cần xem xét là những gì hộp sẽ được sử dụng cho. Nếu bạn sẽ có một số lượng lớn các quy trình đang chạy đồng thời đang chạy trên hộp, nhưng một số lượng đáng kể trong số chúng sẽ không hoạt động trong thời gian, sau đó thêm trao đổi thêm có ý nghĩa. Nếu bạn đang chạy một số lượng nhỏ các quy trình quan trọng, thì việc thêm trao đổi bổ sung có ý nghĩa (điều này có vẻ phản trực giác, nhưng tôi sẽ giải thích sau một phút). Nếu bạn đang chạy một hộp như một máy tính để bàn, thì việc thêm trao đổi thêm có ý nghĩa.

Về việc bạn nên bao gồm trao đổi, có, bạn nên. Bạn phải luôn luôn bao gồm không gian hoán đổi trừ khi bạn thực sự biết bạn đang làm gì và bạn thực sự có lý do chính đáng cho việc đó.

Hãy xem, cách thức hoạt động của nhân Linux, trao đổi không chỉ được sử dụng khi bạn đã sử dụng hết bộ nhớ vật lý. Nhân Linux sẽ lấy các ứng dụng không hoạt động (ngủ) và sau một thời gian, di chuyển ứng dụng để trao đổi từ bộ nhớ thực. Kết quả là khi bạn cần ứng dụng đó, sẽ có một độ trễ tạm thời (thường chỉ là một hoặc hai giây) trong khi bộ nhớ của ứng dụng được đọc lại từ trao đổi sang RAM. Và đây thường là một điều tốt.

Điều này cho phép bạn đặt các ứng dụng không hoạt động vào "ngủ", cho phép các ứng dụng đang hoạt động của bạn truy cập vào RAM bổ sung. Ngoài ra, Linux sẽ sử dụng mọi tính năng khả dụng (chưa phân bổ) RAM trên máy làm bộ đệm đĩa, làm cho hầu hết các hoạt động (chậm) của đĩa nhanh hơn và phản ứng nhanh hơn. Máy của bạn nói chung nhanh hơn.

Cuối cùng, hãy đối mặt với nó, không gian đĩa là rẻ. Thực sự rẻ. Thực sự không có lý do chính đáng nào cả để không quét một phần nhỏ (tương đối) không gian để trao đổi. Nếu tôi đang chạy với 2GB - 4GB of RAM trong một máy, có lẽ tôi đã thiết lập không gian hoán đổi của mình ít nhất bằng với RAM. Nếu đó là ít hơn 2GB RAM, thì Tôi vẫn sẽ đi với ít nhất 2 GB trao đổi.

CẬP NHẬT: Như một bình luận tuyệt vời đã đề cập (và tôi quên không bao gồm), nếu bạn đang chạy máy tính xách tay hoặc máy tính để bàn mà bạn có thể muốn đặt ở chế độ 'ngủ đông' (Tạm dừng vào Đĩa), thì bạn luôn luôn muốn ít nhất là trao đổi nhiều như bạn có bộ nhớ. Không gian hoán đổi sẽ được sử dụng để lưu trữ nội dung của RAM trong máy tính trong khi 'ngủ'.

54
Christopher Cashell

Red Hat khuyến nghị công thức sau cho các máy chủ có nhiều ram:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

Nếu hệ thống của bạn có ram 1 GB, trao đổi của bạn sẽ là 2 GB, đối với 16 GB, đó sẽ là 18 GB.

17
PEra

Câu trả lời muộn và tôi nghĩ rằng điều này đã được trình bày khá nhiều trong câu trả lời được chọn, nhưng có một số thông tin tốt và dễ tiêu hóa trong câu trả lời được cung cấp bởi @ssapkota tại đây (sao chép/dán bên dưới).

Đây là một đề xuất rất hay từ RedHat: Không gian hoán đổi hệ thống được đề xuất

Một đoạn trích từ cùng một liên kết:

Trong những năm trước, lượng không gian hoán đổi được đề xuất tăng tuyến tính với lượng RAM trong hệ thống. Nhưng vì lượng bộ nhớ trong các hệ thống hiện đại đã tăng lên hàng trăm gigabyte, giờ đây người ta nhận ra rằng dung lượng trao đổi mà hệ thống cần là một chức năng của khối lượng công việc bộ nhớ đang chạy trên hệ thống đó. Tuy nhiên, do không gian hoán đổi thường được chỉ định khi cài đặt và có thể là khó xác định trước khối lượng công việc bộ nhớ của một hệ thống , chúng tôi khuyên bạn nên xác định hoán đổi hệ thống bằng bảng sau.

Bảng hiện tại (tính đến tháng 12 năm 2012):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

Bảng gốc:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 
12
ubiquibacon

Nó phụ thuộc khá nhiều vào những gì bạn đang làm với nó. Với khối lượng công việc phù hợp, bạn thực sự không cần bất kỳ dung lượng trao đổi nào, cho dù bạn có 16MB hay 16384MB RAM; thực sự hầu hết các thiết bị Linux nhúng chạy mà không có bất kỳ (chúng sẽ trao đổi với cái gì?)

Xem xét RAM giá, có lẽ bạn sẽ không sử dụng trao đổi để tính toán hoạt động. Vậy, còn lại gì?

  1. Trên máy tính để bàn, không gian hoán đổi được sử dụng để tạm dừng vào đĩa. Không gian hoán đổi này cần khoảng 1 × RAM, tùy thuộc vào mức độ nén nội dung bộ nhớ.
  2. Cho phép xóa các tác vụ không hoạt động khỏi RAM để tạo thêm chỗ cho bộ đệm đĩa
  3. Tương tự, nhưng để cho phép các quy trình hoạt động sử dụng nó thay thế cho heap/stack

(2) và (3) phụ thuộc nhiều vào khối lượng công việc. Trên máy tính để bàn của tôi, tôi có thể dễ dàng sử dụng 4GB + trên (2), từ việc để lại vims, xterms, v.v. chạy trên các máy tính để bàn khác.

Trên hầu hết các máy chủ tôi chạy, hầu như không có bất cứ thứ gì bị tráo đổi và 1 Ho2GB trao đổi (bất kể RAM) có vẻ ổn.

8
derobert

Vâng, nó phụ thuộc vào những dịch vụ và ứng dụng bạn dự định chạy. Bạn có thể xem mức sử dụng bộ nhớ của mình với free -m và điều chỉnh phân vùng trao đổi của bạn theo thời gian.

Đây là một thảo luận thú vị về chủ đề này. Cá nhân (và sau khi đọc cuộc thảo luận đó) Tôi vẫn còn khoảng 1 GB để trao đổi.

4
Ivan

Không gian hoán đổi có thể đóng vai trò là "phần đệm" khi bạn sẽ hết bộ nhớ ngay lập tức.

Khi một tiến trình tiêu thụ tất cả khả dụng RAM và sau đó một số máy sẽ chạy rất chậm, nhưng bạn thường sẽ có thể khôi phục. Cũng sẽ dễ dàng hơn để xem quá trình nào gây ra sự cố .

2
starblue

Tôi không thể nói chuyện trực tiếp với Debian, nhưng tôi biết rằng khi bạn tăng lên trên 2 GB RAM, phương trình 2xRAM ban đầu sẽ thay đổi, thường xuống còn 1xRAM. Tôi nghĩ rằng một khi bạn đạt 16 GB RAM thì đề xuất lại giảm xuống còn 0,75xRAM.

Tất nhiên, tôi thấy điều này đúng với Solaris và thực sự là số liệu được sử dụng cho các cài đặt của Oracle, vì vậy YMMV tùy thuộc vào các ứng dụng bạn sẽ chạy trên đó.

2
Milner

Tôi luôn thực hiện trao đổi nhiều (ít nhất) như RAM. Chỉ trong trường hợp tôi muốn ngủ đông máy một ngày nào đó. Có thể làm việc với ít hơn, nhưng cũng có thể không.

Dung lượng ổ cứng ngày nay rất rẻ, do đó tôi không ngần ngại cho đi không gian trao đổi.

2
Martin C.

Trong nhiều năm qua, tôi đã tuân theo quy tắc rằng đối với các máy Windows, bạn có nhiều trao đổi như RAM ... Trên Novell, chúng tôi sẽ điều chỉnh trao đổi cao hơn nếu chúng tôi có nhiều máy in hơn ... Đối với linux, quy tắc và thực hành đối với tôi là 1GB trao đổi cho mỗi 2GB RAM bạn có. Và bạn đặt nó ở phía trước đĩa để nó được truy cập nhanh hơn.

  • Nếu đó là cổng thư/thư rác, tôi sử dụng gấp đôi trao đổi sang RAM
  • Nếu đó là máy chủ * tôi hoàn toàn không sử dụng trao đổi
  • nếu đó là máy chủ LAMP, quy tắc 1/2 có hiệu lực.

  • Số dặm sẽ thay đổi tùy thuộc vào ứng dụng và sử dụng GUI.

1
Thomas Denton

Tôi chỉ sử dụng một trao đổi mã thông báo nhỏ (thường là 256 MB, nhưng tôi thậm chí đã thực hiện 64 MB) vì cấu hình một hệ thống có trao đổi bằng không cần cấu hình đặc biệt.

Dung lượng đĩa rẻ, nhưng slooooooooow. Ngay khi hệ thống bắt đầu hoán đổi, hiệu suất bằng không. Và RAM không còn quá đắt nữa.

Tin tôi đi, mua bộ xử lý chậm hơn một chút và mua thêm RAM. 2,8 GHz thay vì 3,0 GHz sẽ giúp bạn tiết kiệm đủ tiền để mua thêm 2 GB RAM.

0
Maneesh Kasera

Tôi tạo trao đổi 1GB và mua thêm RAM lần thứ hai nó đang được sử dụng. Bạn không thực sự cần trao đổi trên các máy tính hiện đại, RAM quá rẻ.

0
Adam Gibbins

Bạn đang sử dụng hệ thống để làm gì? Cá nhân tôi không sử dụng bất kỳ trao đổi. Nếu bất cứ điều gì sử dụng mã thông báo 512MB hoặc một cái gì đó chỉ để mọi thứ có thể được đưa vào đĩa nếu cư trú nhưng không hoạt động trong thời gian dài.

0
Mike McQuaid