Có vấn đề gì về số lượng vùng trao đổi trong hệ thống Linux không


12

Có vấn đề gì không nếu số lượng vùng trao đổi trong Linux được đặt quá nhỏ (giả sử 1Gb) và RAM chính là 128Gb?

Chúng ta có nên luôn đặt lượng diện tích trao đổi là gấp đôi dung lượng RAM không?

CẬP NHẬT:

Xin chào, cảm ơn tất cả các bạn đã trả lời câu hỏi này. Trên thực tế, tôi có câu hỏi này vì chúng tôi đã gặp một số vấn đề khi sử dụng một hệ thống cụm nhỏ. Các vấn đề được đăng ở đây . Hình ảnh sau đây là một số thông tin về một số máy tính trong cụm nhỏ này.

thông tin

Các MEMTOTlà tổng dung lượng RAM của máy đó, SWAPTOlà tổng số tiền của SW AP khu vực của máy đó, và SWAPUSlà số tiền được sử dụng diện tích SWAP. Như trong hình, việc sử dụng SWAP thực sự nhỏ.

Khi cố gắng giải quyết những vấn đề được đăng ở đây , chúng tôi không chắc liệu diện tích SWAP có được đặt quá nhỏ hay không, 1Gbtương đối 128Gbgiống như trong hình. Vì vậy, tôi có câu hỏi này. Tôi xin lỗi tôi đã không đăng toàn bộ thông tin cơ bản trong phiên bản gốc của bài đăng này. Trước đó, chúng tôi cũng đã nghĩ rằng nếu dung lượng RAM lớn, chúng tôi có thể đặt lượng SWAP nhỏ. Chúng tôi đã cố gắng đặt SWAP c0148thành 16Gb, vấn đề dường như là không có (Có lẽ chúng ta nên đưa ra kết luận này sau khi quan sát trạng thái của chúng trong một thời gian dài).

Chúng tôi không phải là chuyên gia về hệ thống Linux và chúng tôi không thể giải thích lý do tại sao điều này xảy ra. Có khả năng đây là một hệ thống cụm và SGE đang quản lý tài nguyên của từng máy và nó cần phải có một lượng SWAP tương đối lớn vì máy đó có thể được sử dụng bởi nhiều công việc được gửi bởi nhiều người dùng.

Ngoài ra, nếu chúng ta chỉ đặt lượng SWAP quá lớn, thì những vấn đề khác mà nó sẽ gây ra cũng đáng để xem xét.


1
Nếu bạn có 128Gb ram, và bạn bắt đầu hoán đổi - hệ thống đó có thể vượt khỏi tầm kiểm soát và dù sao đi nữa. Tôi, cá nhân, có thể sẽ chạy máy chủ đó mà không cần trao đổi. OOMKiller nên quan tâm đến bất kỳ quá trình chạy trốn nào trước khi hết bộ nhớ gây ra sự cố - và sự cố nhanh hơn để khắc phục mọi vấn đề.
Ryan Gooler

1
Đó sẽ là - cái gì? Một vài megs từ init? Một số bộ nhớ được lưu trữ sẽ được ném ngay khi một cái gì đó thực sự cần ram? Nếu máy của bạn CẦN chuyển đổi bộ nhớ thành chức năng, máy sẽ bị quá tải và cần được tăng kích thước.
Ryan Gooler

1
@Ryan Gooler: Nếu bạn đang thực hiện các mô phỏng khoa học, một quy trình sử dụng 128 Gb trở lên không phải là không hợp lý.
jamesqf 17/2/2015


1
@RyanGooler Đúng vậy. Quan điểm của tôi là tăng trao đổi có thể cho phép các chương trình sử dụng nhiều ram vật lý hơn. Chỉ có vài MB nhưng tốt hơn là không có gì :)
Navin

Câu trả lời:


19

Hạt nhân Linux có một cài đặt để kiểm soát tần suất trao đổi được sử dụng, được gọi swappiness, được mô tả tại /unix/88693/why-is-swappiness-set-to-60-by-default .

Một swappiness bằng 0 có nghĩa là trao đổi sẽ chỉ được sử dụng nếu hệ thống hết bộ nhớ. Một sự thay đổi của 100 chương trình buộc phải sử dụng trao đổi ngay lập tức.

Tinh chỉnh hệ thống của bạn như bạn muốn nó hoạt động, nhưng có RAM 128 GB rất khó có khả năng hệ thống của bạn hết bộ nhớ một cách dễ dàng, do đó, có 2/4 GB trao đổi là đủ. Không nên, nhưng có thể, để chạy một hệ thống không có phân vùng trao đổi.

Tôi nghĩ rằng quy tắc của vùng trao đổi là gấp đôi dung lượng RAM đã lỗi thời và chỉ hữu ích trên các hệ thống có dung lượng RAM khoảng 1 GB và luôn nằm trong phạm vi sử dụng RAM đầy đủ.


2
Mặc dù cài đặt swappinessvề 0 có vẻ hợp lý với một lượng RAM lớn, nhưng tốt hơn là giữ nó làm giá trị mặc định của 60: http://unix.stackexchange.com/a/88820/50687 .
AL

1
Có một số biểu đồ với dạng swappiness từ 0 đến 100 trên một trục và một cái gì đó khác trên trục kia để chứng minh cách thức swappiness phụ thuộc vào giá trị?
dùng1306322

Xin chào, @jcbermu, tôi đã cập nhật bài đăng, nếu thuận tiện, vui lòng kiểm tra nó.
khai thác

5

Tôi tin rằng quy tắc 2x của ngón tay cái đã lỗi thời. Máy trạm của chúng tôi có ram 16 GB, chúng tôi thường chỉ sử dụng khoảng 25% trong số đó và hầu như không sử dụng hơn 50%. Vì vậy, cho mục đích của chúng tôi, chúng tôi không sử dụng bất kỳ trao đổi.

Vì bạn phải quyết định tạo ra bao nhiêu trao đổi, và theo lý thuyết là bất kỳ số nào bạn chọn sẽ không đủ tại một số điểm, vậy thì tại sao không chọn 0? Hoặc - tại sao không chỉ cài đặt thêm RAM?

Tôi tin rằng đây là một quyết định rất cá nhân dựa trên cách máy tính của bạn sẽ được sử dụng và dung lượng RAM.


Xin chào, @gjcamnn, cảm ơn bạn đã trả lời. Tôi đã cập nhật bài viết, nếu thuận tiện, vui lòng kiểm tra nó.
khai thác

0

Trừ khi bạn sẽ thực hiện một số tính toán tiêu thụ bộ nhớ, bạn hoàn toàn không cần trao đổi (nhưng tốt hơn là có phân vùng trao đổi nhỏ). Nhưng có trao đổi> ram là cần thiết khi bạn sẽ sử dụng đình chỉ vào đĩa.


Xin chào, @ustp, cảm ơn bạn đã trả lời. Tôi đã cập nhật bài viết, nếu thuận tiện, vui lòng kiểm tra nó.
khai thác
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.