Làm thế nào lớn phân vùng trao đổi nên được?


10

trong một số năm, tôi đã đọc được rằng nên tạo một phân vùng trao đổi có không gian gấp đôi RAM của tôi. nó vẫn còn áp dụng ngày hôm nay chứ? hoặc điều này không còn cần thiết nữa?

Tôi có một máy chủ với 8 GiB RAM và tôi cần tạo một phân vùng trao đổi, và tôi đã tự hỏi nếu 16 GiB là quá nhiều.


Câu trả lời:


11

Trên các hệ thống lớn, 8GB RAM vật lý, chúng tôi thường phân bổ 2GB trao đổi. Đây là các máy chủ cơ sở dữ liệu được tải đang chạy Oracle hoặc PostgreSQL. Trong nhiều năm, tôi chưa bao giờ thấy trao đổi trúng ngay cả khi tải nặng. Tải nặng là khoảng 100 đến 150 người dùng thực hiện khoảng 10.000 lần đọc SQL và có thể 2.500 lần ghi mỗi phút.

Chúng tôi cũng điều chỉnh mức độ hoán đổi lên để không khuyến khích trao đổi và chúng tôi tắt các quy trình không cần thiết mà chúng tôi biết rằng chúng tôi không cần chạy. (Bản dựng Linux tùy chỉnh)

Giống như Eddie, đã nói ở trên, RAM vật lý 1x là một quy tắc tốt cho mọi thứ dưới 4GB. Tôi thực hiện các bản dựng Linux tùy chỉnh cho một công ty lớn, Fortune-500 và đây là những việc chúng tôi thường làm và chúng tôi không gặp vấn đề gì trong hơn 5 năm qua tôi đã tư vấn cho họ.

Trên các hệ thống lớn hơn: Linux 64 bit với 32 GB và 64 GB RAM, đây là các máy chủ cơ sở dữ liệu Oracle của chúng tôi và chúng tôi thường giữ 2 GB trao đổi xung quanh cho những thứ như Eddie chỉ ra ở trên - các quy trình nhàn rỗi sẽ được chuyển sang trao đổi tùy theo cài đặt hoán đổi của bạn.


5

Một câu hỏi dường như vượt thời gian. Những người tốt ở SlashDot đã thảo luận điều này một thời gian trước đây. Kiểm tra những gì họ đã nói:

  • Dung lượng ổ đĩa không phải là vấn đề với các ổ cứng hiện đại, 16GB vẫn là một lượng không đáng kể cho các ổ TB hiện đại.
  • Tuy nhiên, không gian hoán đổi đáng kể có thể là một vấn đề trong trường hợp quản lý bộ nhớ kém:

Nếu tôi xem phim 4 GB trong khoảng thời gian 2 giờ, nhiều người quản lý bộ nhớ sẽ quyết định rằng cố gắng lưu trữ tất cả dữ liệu đó có thể là một điều tốt. Nửa chừng bộ phim, nó sẽ nghĩ rằng tất cả các chương trình đang chạy khác đã không được sử dụng trong một giờ và có thể được hoán đổi một cách an toàn để ủng hộ bộ nhớ cache của tệp 4 GB đó. Kết quả cuối cùng là một nửa chương trình của bạn bị tráo đổi sau khi xem phim, dẫn đến một hệ thống chậm chạp đang vứt rác trên tất cả các tệp hoán đổi.

  • Cuối cùng, quyết định đúng đắn phải đến từ các yêu cầu về bộ nhớ, chứ không phải các công thức ballpark:

Nếu bạn có [đủ RAM để chạy các chương trình bạn muốn sử dụng hàng ngày], thì không có lý do gì để sử dụng trao đổi.


3

Xem câu trả lời Có bao nhiêu dung lượng SWAP trên hệ thống bộ nhớ cao? cho một số hướng dẫn, mặc dù câu hỏi của bạn là tổng quát hơn. Ý kiến ​​rất khác nhau về điều này, nhưng nhìn chung những người có RAM 1 GiB trở lên dường như chạy mà không trao đổi hoàn toàn hoặc với 1xmemory là trao đổi.

Ngay cả khi bạn không có kế hoạch sử dụng quá nhiều RAM mà bạn sẽ buộc phải hoán đổi, thì vẫn có một số giá trị khi có ít nhất 1xmemory dưới dạng hoán đổi: Nó cho phép hệ điều hành trao đổi một số thứ không được sử dụng ngay lập tức để nó có thể sử dụng bộ nhớ đó cho bộ đệm đĩa hoặc IO chẳng hạn.


3

Nếu bạn mong muốn hệ thống của mình có thể ngủ đông và sau đó tiếp tục thành công :-), có lẽ tốt hơn là phân bổ nhiều không gian hơn cho phân vùng trao đổi so với lượng RAM vật lý


3

Nhà cung cấp VPS của tôi thậm chí không cung cấp không gian hoán đổi cho các máy chủ và tôi vẫn hoạt động tốt mà không có nó.

Hầu hết các máy chủ tôi thấy trên cơ sở hàng ngày tại nơi làm việc cũng không có trao đổi.

Biên tập

Tuy nhiên - nếu bạn đang chạy JVM, hãy đảm bảo rằng bạn có ít nhất không gian hoán đổi như bạn từng đặt -Xmxvì một vấn đề đã biết với JVM.

Nói tóm lại, khi JVM cần nhiều bộ nhớ hơn so với hiện tại nó đang sử dụng (nhưng vẫn chưa đạt được Xmx), nó:

  • hoán đổi bản thân vào đĩa
  • phân bổ bộ nhớ mới
  • đọc lại vào RAM

Điều này có nghĩa là nếu bạn trao đổi ít hơn của bạn Xmx, nó có thể thất bại.

Để báo cáo báo cáo lỗi

Điều tốt nhất để làm là tăng kích thước trao đổi trên các máy gặp phải lỗi này.

Tôi cố gắng chơi nó an toàn khi làm việc với các JVM và đặt trao đổi thành bộ nhớ vật lý bằng nhau.


2

Với tốc độ của các ổ đĩa cứng hiện đại, các giao dịch hoán đổi lớn chỉ là một lời mời để đập. Có thể SSD sẽ đảo ngược xu hướng này, nhưng với tốc độ truyền tối đa có thể là 300 MB / giây cho một đĩa, việc hoán đổi trong 2-4 GB sẽ mất nhiều thời gian.

Vào thời xưa (ví dụ: Linux 1.2, i386, SunOS 4.x), bạn có thể có 5-15 MB tiến trình daemon đang chạy và bất cứ nơi nào từ 4-32 MB RAM và do đó, các trình nền đã bị chặn chờ I / O có thể được hoán đổi mà không có hiệu suất thực sự ... Và chúng sẽ tốt hơn vì các chương trình người dùng có thể có ít nhất 2-3 MB RAM. Trao đổi làm cho rất nhiều ý nghĩa.

Bây giờ trong môi trường của tôi, hầu hết các máy chủ đều có khối lượng công việc nặng bộ nhớ duy nhất và RAM có thể được ước tính khá chính xác ... Hoán đổi là có cho các trường hợp khẩn cấp, các quy trình chạy trốn, v.v.

Các ngoại lệ là dành cho máy tính xách tay và máy trạm có thể ngủ. Nhiều hệ điều hành sẽ sử dụng vùng trao đổi để lưu hình ảnh treo và trong những trường hợp đó, hoán đổi phải lớn hơn bộ nhớ vật lý. Trong Linux với Suspend2 / tuxonice, bạn nên có kích thước hoán đổi 2xRAM để hỗ trợ tạm dừng vào đĩa.


Vào thời xưa, System V 3.2 trở về trước đã sử dụng chính xác trao đổi kích thước RAM. Bất kỳ ít hơn đã bị phá vỡ và bất kỳ nhiều hơn đã bị lãng phí, vì nó không phải là một hệ thống bộ nhớ ảo tinh vi như BSD.
kmarsh

2

Ngày nay, nếu bạn đang chạy một máy chủ 32 GB hoặc 64 GB, 4 GB trao đổi mặc định là một số tiền an toàn. Bất cứ điều gì lớn hơn đó là quá mức cần thiết với nhiều RAM vật lý có sẵn.


1

Lý tưởng nhất là bạn sẽ không sử dụng trao đổi gì cả, và thứ RAM 2 lần thực sự là thứ còn sót lại từ nhiều năm trước.

Tuy nhiên, nếu bạn lo lắng về điều đó, tôi sẽ làm một cái gì đó như:

Max Memory Requirement - Physical Ram = Swap

Tôi nghĩ rằng 16GB âm thanh quá lớn, cá nhân.


1

Vào thời xa xưa bạn muốn nhiều nhất có thể, tiêu thụ bộ nhớ trong hạt nhân * nix hiện đại là một điều của quá khứ. Câu nói cũ là "gấp đôi bộ nhớ của bạn". Từ 2GB hoặc dung lượng mà máy có trong ram ngày này và tuổi sẽ đưa bạn đến gần nơi bạn cần.


1

Việc hoán đổi cũng được sử dụng để lưu trữ các bãi chứa sau khi hoảng loạn hạt nhân. Nếu bạn quan tâm bằng cách phân tích các bãi chứa này và không chỉ định đích kết xuất khác, hoán đổi của bạn ít nhất phải bằng RAM của bạn.


0

Không có thuật toán duy nhất cho bạn biết bạn cần bao nhiêu trao đổi. Trong thực tế, bạn cần đặt hệ thống của mình dưới tải trọng lớn nhất mà bạn dự định hỗ trợ và tìm hiểu xem nó thực sự sử dụng bao nhiêu tài nguyên. Đặt tệp hoán đổi của bạn cho phù hợp.

Đối với RAM vật lý, bạn nên đặt hệ thống của mình dưới tải "hành trình" thực tế mà bạn mong muốn xử lý và mua theo. Đối với các hệ thống có độ trễ thấp, bạn không nên trao đổi trong toàn bộ hành trình của mình (điều này không giống như không được trao đổi hoặc thậm chí sử dụng.) Một số lượng nhỏ có thể xảy ra do các tiện ích hệ thống ít được sử dụng thực hiện việc giữ nhà , nhưng lớn hơn bạn nên có ít trao đổi nhất có thể.

Tất nhiên, bạn có thể đánh đổi hiệu suất với giá thấp hơn.

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.