Tôi đã tự hỏi vì tôi nghe nói rằng trao đổi được sử dụng khi bạn hết RAM hoặc trao đổi quá nhiều là xấu, vì tôi có rất nhiều RAM (8GB) ....
Nếu tôi không tạo phân vùng trao đổi thì sao?
Ngoài ra, tôi có cần nó để ngủ đông hay không?
Tôi đã tự hỏi vì tôi nghe nói rằng trao đổi được sử dụng khi bạn hết RAM hoặc trao đổi quá nhiều là xấu, vì tôi có rất nhiều RAM (8GB) ....
Nếu tôi không tạo phân vùng trao đổi thì sao?
Ngoài ra, tôi có cần nó để ngủ đông hay không?
Câu trả lời:
Các hệ điều hành hiện đại đòi hỏi một không gian trao đổi để sử dụng RAM hiệu quả. Ngay cả khi hệ thống của bạn có nhiều RAM, việc lãng phí RAM sẽ dẫn đến bộ đệm bộ đệm nhỏ hơn, điều đó có nghĩa là I / O của đĩa tăng lên. Vì vậy, cho dù bạn có bao nhiêu RAM, bạn vẫn muốn hệ thống sử dụng nó hiệu quả. Sử dụng nó một cách hiệu quả có nghĩa là lấy những thứ ra khỏi RAM mà cực kỳ khó có thể truy cập được.
Khi bạn khởi động một hệ thống điển hình, một số lượng lớn các dịch vụ sẽ khởi động. Các chương trình chạy mã khởi tạo và sửa đổi ánh xạ bộ nhớ riêng trong quy trình. Một số các dịch vụ này sẽ không bao giờ chạy lại. Nhiều người trong số họ sẽ không chạy trong nhiều giờ. Không có trao đổi, HĐH không có lựa chọn nào khác ngoài việc giữ ánh xạ bộ nhớ riêng được sửa đổi liên quan đến các dịch vụ đó trong RAM mãi mãi. Đó là RAM không bao giờ có thể được sử dụng làm bộ đệm đĩa.
Vì vậy, bạn muốn trao đổi cho dù bạn cần hay không.
Tôi đã chạy một hệ thống máy tính để bàn mà không có bất kỳ trao đổi nào trong một vài năm, và nó sẽ rất tuyệt! Có một vài hành vi khác nhau; một số trong số này là lợi thế và một số có thể gây hại cho bạn. Tất cả phụ thuộc vào những gì bạn đang làm.
Một điểm khác biệt chính là cách hệ thống hoạt động khi hết bộ nhớ:
Nếu không có phân vùng trao đổi, kẻ giết OOM sẽ chạy ngay lập tức. Nếu bạn có một bộ nhớ bị rò rỉ chương trình, đó có khả năng là bộ nhớ bị giết. Điều đó xảy ra và bạn phục hồi hệ thống gần như ngay lập tức.
Nếu có là một phân vùng swap, hạt nhân đẩy các nội dung của bộ nhớ vào trao đổi. Quá trình Errant có thể tiếp tục phân bổ bộ nhớ. Điều này tiếp tục xảy ra cho đến khi hết trao đổi, có thể là mười phút đến một giờ nếu bạn có một phân vùng trao đổi lớn. Trong khi thực hiện điều này, hệ thống của bạn sẽ chậm lại. Nó trở nên không thể mở một thiết bị đầu cuối và giết quá trình. Tôi thường rút dây nguồn khi điều này xảy ra.
Vì vậy, vì tôi sẽ mất dữ liệu dù sao khi OOM hệ thống, tôi thích tùy chọn trước đây ít nhất có cơ hội phục hồi (cao).
Hoán đổi là cần thiết để ngủ đông, nếu không bạn có thể nhận được mà không cần nó tốt.
Đó là một quan niệm sai lầm phổ biến khi nghĩ rằng có một khu vực trao đổi ảnh hưởng tiêu cực đến hiệu suất. Điều gì ảnh hưởng nghiêm trọng đến hiệu suất là không có đủ RAM. Vùng hoán đổi trên mỗi se không có ảnh hưởng tiêu cực đến hiệu suất trừ khi bạn không quan tâm đến độ tin cậy. Nó có thể có tác động tích cực đến hiệu suất ngay cả khi bạn nghĩ rằng bạn có đủ RAM (và không có báo cáo về sự thiếu hụt RAM).
Về cơ bản có ba trường hợp để xem xét:
1: Có đủ RAM cho nhu cầu kernel bên trong, cho tất cả các ứng dụng của bạn có bộ trang hoạt động trên RAM và vẫn có RAM "miễn phí" cho bộ đệm bộ đệm để lưu trữ hầu hết dữ liệu nóng của hệ thống tệp.
2: giống như trên, ngoại trừ bạn không có đủ RAM miễn phí để bộ đệm bộ đệm hoạt động hoàn toàn.
3: Không có đủ RAM để lưu trữ các trang ứng dụng của bạn.
Trong trường hợp 1, là tiêu chuẩn cho một máy sản xuất, có vùng trao đổi hoặc không thay đổi bất cứ điều gì (ít nhất là trên các HĐH dựa trên Linux và các HĐH khác có bộ nhớ quá mức).
Trong trường hợp 2, có một vùng trao đổi có thể cải thiện hiệu suất tổng thể bằng cách cho phép hệ thống thoát ra khỏi các trang được sử dụng rất ít và sau đó cho phép bộ đệm bộ đệm phát huy tốt hơn vai trò của nó.
Trong trường hợp 3, có một vùng trao đổi cho phép ứng dụng tiếp tục chạy với chi phí suy giảm hiệu suất do phân trang. Mặt khác, thiếu một khu vực trao đổi (hoặc một khu vực đủ lớn) sẽ khiến các ứng dụng bị sập một cách ngẫu nhiên. Ngoài ra, tùy thuộc vào cài đặt hệ điều hành, kẻ giết người OOM cũng có thể quyết định tiêu diệt các ứng dụng ngốn nhiều bộ nhớ nhất nếu có nhu cầu RAM mạnh mà không cho chúng cơ hội lưu dữ liệu quan trọng (của bạn).
Trường hợp sau này là một trong đó bạn phải lựa chọn. Chắc chắn có một số trường hợp sử dụng trong đó có các quy trình bị giết là tùy chọn ưa thích như các hệ thống trong đó thời gian phản hồi là rất quan trọng và việc mất giao dịch / quy trình không phải là vấn đề lớn.
Tuy nhiên, tôi có xu hướng tin vào hầu hết các tình huống, tốt hơn là có thể để người dùng / quản trị viên nhận thấy sự thiếu hụt RAM và hành động phù hợp mà không có nguy cơ mất dữ liệu.
Nếu bạn không muốn sử dụng phân vùng trao đổi, bạn có thể sử dụng tệp hoán đổi: hình ảnh hệ thống tệp được lưu trữ trên một tệp thông thường và được sử dụng làm không gian trao đổi của bạn.
Các bài viết sau đây giải thích làm thế nào để làm điều đó một cách chi tiết:
Hơi nguy hiểm một chút nhưng bạn CÓ THỂ chạy mà không có không gian hoán đổi. Nhưng nếu cuối cùng bạn vượt quá dung lượng bộ nhớ, hệ thống của bạn sẽ gần như bị sập ngay lập tức mà không cần thông báo trước.
Những gì trao đổi cung cấp cho bạn về cơ bản là một phần mở rộng nhưng chậm hơn nhiều cho bộ nhớ của bạn. Nếu bạn vượt quá bạn sẽ bắt đầu hoán đổi, nó thực sự sẽ lấy đi sự sống của hệ thống của bạn .... TUY NHIÊN bằng cách giết chết các quy trình sai lầm mà bạn vẫn có thể cứu hệ thống của mình.
Một số chương trình nhấn mạnh vào việc phân bổ (nhưng không sử dụng) không gian hoán đổi, một số trong số này là các chương trình cơ sở dữ liệu nếu tôi nhớ lại. Một lần nữa, bằng cách không có không gian hoán đổi, bạn có thể giới hạn các chương trình có thể chạy.
Cuối cùng, xem SWAP là CHEAP trong thực tế là bạn không phải sao lưu khu vực. (Tôi hy vọng rằng bạn là một trong những sysadins xuất sắc, những người sao lưu hệ thống của họ).
Vì vậy, tạo ra nó.
Quy tắc ngón tay cái của tôi từng là kích thước bộ nhớ 2 * ..... nhưng bây giờ tôi vẫn ổn trong nhiều trường hợp với kích thước bộ nhớ 1 * nhưng thường sử dụng 1,5 * (kích thước bộ nhớ). Bạn không cần phải tạo ra số tiền lớn này, nhưng tôi sẽ ... đặc biệt nếu có bất kỳ loại công việc sản xuất nào bạn đang làm.
Ồ vâng, và để ngủ đông, trao đổi là BẮT BUỘC để giữ toàn bộ hình ảnh của bộ nhớ. Và do đó, kích thước nếu bạn đang xem xét h8ibernation phải là AT LEAST (kích thước bộ nhớ 1 *) + 100MB .. 100 MB là dành cho chi phí có thể cần thiết trong quá trình.
Trao đổi Linux dường như có một yêu cầu khá khó khăn ngay khi có áp lực bộ nhớ. Triệu chứng là nếu hầu hết tất cả RAM được sử dụng bởi các quy trình hoạt động, hệ thống sẽ bị cứng và ổ cứng hoạt động mạnh.
Tại sao?
Các trang không có tệp sao lưu (thường là từ cấp phát bộ nhớ động) không thể bị xóa khỏi RAM khi không có trao đổi. Hạt nhân sử dụng các trang có tệp sao lưu ngay cả khi chúng thực sự cần thiết một lần nữa, i. e. rác thậm chí không trao đổi!
Để biết thêm chi tiết về vấn đề tinh tế này, xem bài đăng trên blog này.
Kết luận : Luôn luôn có một trao đổi.
Và đối với kích thước như một hướng dẫn sơ bộ, hãy sử dụng khoảng từ 4 đến 8 GB, ngay cả đối với các hệ thống có nhiều RAM, giả sử bạn không ngủ đông. Để biết thêm chi tiết, xem tài liệu của Red Hat về không gian hoán đổi .