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?
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?
Câu trả lời:
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,5 x RAM. Nhiều lần các công thức được thay đổi tùy thuộc vào dung lượng RAM (do đó, hộp có 1GB RAM có thể sử dụng 2 lần trao đổi RAM (2 GB), trong khi hộp có 16 GB ram có thể sử dụng 0,5 lần trao đổi RAM (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 khoảng 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 nên luôn luôn bao gồm không gian hoán đổi trừ khi bạn thực sự biết những gì bạn đang làm 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 bất kỳ RAM có sẵn (chưa phân bổ) nào trên máy làm bộ đệm đĩa, làm cho hầu hết hoạt động (chậm) của đĩa nhanh hơn và phản hồi nhanh hơn. Trao đổi các quy trình không hoạt động cung cấp cho bạn nhiều bộ đệm đĩa hơn và làm cho tổng thể máy của bạn 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 RAM trong một máy, có lẽ tôi sẽ thiết lập không gian hoán đổi của mình ít nhất bằng với RAM. Nếu nó có ít hơn 2 GB RAM, thì tôi vẫn sẽ sử dụng í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 đưa vào), 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 muốn ít nhất là nhiều trao đổi khi 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 nó 'ngủ'.
Red Hat đề xuất 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.
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 tốt 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 qua, 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ì dung lượng bộ nhớ trong các hệ thống hiện đại đã tăng lên hàng trăm gigabyte, nên 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ớ 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ể khó xác định trước khối lượng công việc bộ nhớ của 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
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 giá RAM, có lẽ bạn sẽ không sử dụng trao đổi để tính toán hoạt động. Vì vậy, những gì còn lại?
(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ể dung lượng RAM) có vẻ ổn.
madvise
, nhưng điều đó sẽ không thất bại ... lỗi đó nói về việc hết bộ nhớ trong quá trình thu gom rác. Thêm trao đổi ngăn chặn điều đó, tất nhiên, nhưng vì vậy sẽ thêm RAM. Có lẽ do 32-bit với PAE?
Xms
và Xmx
không được đặt cùng một giá trị, nó có thể cắn bạn rất tệ: gây ra vấn đề lớn cho chúng tôi trong hai + tuần cho đến khi chúng tôi cuối cùng đã theo dõi nó
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 phù hợp theo thời gian.
Đây là một cuộc 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.
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, đề 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 đó.
Hoán đổi không gian có thể phục vụ như "đệm" khi bạn sẽ hết bộ nhớ ngay lập tức.
Khi một quá trình tiêu thụ tất cả RAM có sẵn và sau đó một số máy sẽ chạy rất chậm, nhưng bạn thường sẽ có thể phục hồi. Nó cũng sẽ dễ dàng hơn để xem quá trình nào gây ra vấn đề.
Trong những 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 RAM 2GB bạn có. Và bạn đặt nó ở phía trước đĩa để nó được truy cập nhanh hơn.
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.
Tôi tạo trao đổi 1GB và mua thêm RAM khi nó đượ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 rất rẻ.
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.
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.
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.