Làm cách nào để ngăn hệ thống của tôi không phản hồi khi đập (hết RAM)?


11

Tôi có 8GB RAM, nhưng đôi khi tôi đang chạy một vài máy ảo và đủ các quy trình Chrome để sử dụng hầu hết bộ nhớ của tôi. Điều đó thường ổn, nhưng đôi khi hệ thống của tôi bắt đầu hoạt động, và thật khó để tôi phục hồi từ nó mà không chờ đợi mọi thứ trở nên tốt hơn vì giao diện người dùng chủ yếu bị đóng băng.

Trong tất cả các trường hợp này, các chương trình sử dụng hầu hết RAM của tôi có thể bị khử cấp. Nếu Chrome hoặc VM trở nên không phản hồi nhưng môi trường đồ họa và thiết bị đầu cuối của tôi vẫn phản hồi, tôi có thể chuyển sang thiết bị đầu cuối, tìm thủ phạm và tiêu diệt nó. Tôi có thể tưởng tượng một cái gì đó giống như "tốt đẹp" cho bộ nhớ (để tôi có thể làm đẹp Chrome và VM của mình) hoặc một cái gì đó để buộc môi trường đồ họa và thiết bị đầu cuối của tôi ở trong bộ nhớ và không trao đổi.

Có cách nào để đảm bảo rằng UI vẫn phản hồi khi hệ thống của tôi bị lỗi không?

Cảm ơn!

EDIT: Tôi vẫn quan tâm đến việc liệu có thứ gì đó tốt đẹp cho bộ nhớ hay không, nhưng tôi mới phát hiện ra rằng sistem của tôi không có bất kỳ không gian hoán đổi nào. Tôi nghĩ rằng điều này đã xảy ra bởi vì tôi đã bắt đầu sử dụng một ngôi nhà được mã hóa và trao đổi được mã hóa (xem Hoán đổi không hoạt động trên bản cài đặt 14.04 sạch bằng cách sử dụng nhà được mã hóa ). Vì vậy, hệ thống của tôi có thể trở nên không phản hồi vì tôi không có bất kỳ không gian hoán đổi nào, vì vậy hệ thống của tôi không thể trao đổi các chương trình không cần thiết khi bộ nhớ bị thiếu.


Vì vậy, có vẻ như bạn đã tìm thấy nguyên nhân của vấn đề của mình (không phân bổ trao đổi) - bây giờ bạn có muốn biết cách thiết lập trao đổi được mã hóa không? Có lẽ bạn có thể chỉnh sửa câu hỏi hoặc bắt đầu một câu hỏi mới.
thomasrutter

1
Tôi vẫn quan tâm đến một thứ kiểu RAM đẹp vì tôi đã gặp vấn đề tương tự như vấn đề được mô tả trong câu hỏi của tôi trước cả khi tôi có một tệp hoán đổi.
Sam King

Câu trả lời:


2

Tôi mới phát hiện ra rằng sistem của tôi không có không gian hoán đổi

Nếu điều này là đúng, thì có lẽ nó đã góp phần gây ra vấn đề.

Bằng cách sử dụng nhiều máy ảo có phân bổ bộ nhớ lớn, một lượng RAM thông thường sẽ quá đủ để sử dụng bình thường (8GB) bắt đầu trở nên chặt chẽ, điều đó có nghĩa là hệ thống của bạn sẽ không thể sử dụng nhiều bộ nhớ cache và sẽ muốn trao đổi . Bây giờ, nếu bạn không có trao đổi, sẽ còn có nhiều áp lực hơn đối với bộ nhớ và thậm chí bạn có thể bị mất các tác vụ do hết bộ nhớ.

Hoán đổi cố gắng cải thiện tính ổn định và hiệu suất tổng thể trong các tình huống như tình huống bạn đã mô tả, bằng cách phân bổ lại một số dữ liệu được phân bổ nhưng ít khi được sử dụng trong bộ nhớ vào đĩa, giải phóng bộ nhớ cho dữ liệu bạn đang sử dụng. Thêm trao đổi, nếu bạn thực sự không có, sẽ giúp. Tuy nhiên, về mặt hiệu suất, bạn sẽ cải thiện nhiều hơn nếu bạn cũng mua thêm RAM hoặc sử dụng ít hơn.

Trên hệ thống mà bạn đang chạy VM nhưng bạn cũng đang sử dụng máy tính để bàn thông thường trên máy chủ VM, bạn không muốn máy ảo của mình chiếm hết RAM, thực tế tôi sẽ tiết kiệm được một nửa RAM (tối đa 4GB ) cho máy chủ, do bạn đang chạy phần mềm trên máy chủ và muốn phần mềm phản hồi.

Cũng lưu ý rằng máy ảo có sự thiếu hiệu quả vốn có không chỉ vì RAM của chúng hoàn toàn tách biệt, chúng không chia sẻ bất kỳ bộ đệm hoặc bộ đệm nào, mà chúng đang chạy một hệ điều hành riêng biệt dưới một số lớp trừu tượng. Vì vậy, bạn luôn có thể đạt được hiệu quả tốt hơn nếu bạn quyết định chạy một cái gì đó trên máy chủ chứ không phải trong máy ảo - mặc dù nếu mục đích sử dụng máy ảo của bạn là sử dụng các hệ điều hành khác thì điều này sẽ không thể thực hiện được.

Có cách nào để đảm bảo rằng UI vẫn phản hồi khi hệ thống của tôi bị lỗi không?

Khi dung lượng RAM bạn gặp phải là một vấn đề, bất cứ điều gì bạn có thể làm chỉ là hack - giải pháp thực sự là mua thêm RAM (mặc dù trong trường hợp của bạn như tôi đã đề cập, bạn có thể chỉ cần phân bổ ít hơn cho VM).

Câu hỏi của bạn được đặt theo các thuật ngữ đơn giản - bạn muốn UI có thể tiếp tục hoạt động trơn tru ngay cả khi IO bị tắc nghẽn. Tuy nhiên, thật khó để trả lời. Hệ thống của bạn sẽ đã được làm điều này để hết khả năng của nó: hoạt động mà không yêu cầu quyền truy cập đĩa sẽ không được bị trì hoãn. Nếu "UI bị nói lắp" thì đó là vì quy trình cụ thể chịu trách nhiệm cho UI đó cần truy cập đĩa. Trong tình huống bộ nhớ thấp và nơi đĩa bị đập, thậm chí một số thứ thường là tầm thường - chẳng hạn như đọc một số cấu hình từ thư mục chính của bạn để tìm hiểu sở thích hiển thị của bạn là gì - có thể bị chậm do cạn bộ nhớ cache của đĩa.

Tôi có thể tưởng tượng một cái gì đó giống như "tốt đẹp" cho bộ nhớ (để tôi có thể làm đẹp Chrome và VM của mình)

Thực sự không có một "tốt đẹp cho bộ nhớ". Truy cập bộ nhớ nhanh đến mức bạn thường có thể bỏ qua nó. Khi bạn đập, nó không phải là bộ nhớ, đó là đĩa, đó là vấn đề. Có một "ionice" vì điều này. Mặc dù đó có lẽ không phải là những gì tôi muốn giới thiệu cho vấn đề của bạn.

Một tương đương khác của "tốt cho bộ nhớ" là hoán đổi - bạn không thể kiểm soát mức độ phù hợp của từng quy trình riêng lẻ nhưng hệ thống thực hiện công việc khá tốt để xử lý các quy trình bạn đang tích cực sử dụng và do đó ưu tiên cao hơn được giữ trong RAM.

Nhưng như tôi đã nói và như một quy tắc vàng, nếu bạn hết RAM, thì mua thêm RAM là giải pháp với ít đau đầu và nhược điểm nhất.

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.