Tôi cá rằng hệ thống không thực sự "đóng băng" (theo nghĩa là hạt nhân bị treo), nhưng đúng hơn là không phản hồi. Rất có thể nó đã hoán đổi rất mạnh, khiến hiệu suất tương tác và thông lượng hệ thống giảm xuống như một hòn đá.
Bạn có thể tắt trao đổi, nhưng điều đó chỉ thay đổi vấn đề từ hiệu suất kém sang các quy trình bị OOM giết (và tất cả những điều thú vị gây ra), cùng với hiệu suất giảm do bộ đệm đĩa ít khả dụng hơn.
Cách khác, bạn có thể sử dụng các giới hạn tài nguyên trên mỗi quy trình (thường được gọi là rlimit
và / hoặc ulimit
) để loại bỏ khả năng một quy trình chiếm một lượng bộ nhớ vô lý và gây ra sự hoán đổi, nhưng điều đó chỉ đẩy bạn vào lãnh thổ giải trí với các quy trình chết tại khoảnh khắc bất tiện vì họ muốn có thêm một chút bộ nhớ so với hệ thống sẵn sàng cung cấp cho họ.
Nếu bạn biết bạn sẽ làm điều gì đó có khả năng gây ra việc sử dụng bộ nhớ lớn, bạn có thể viết một chương trình trình bao bọc đã thực hiện mlockall()
và sau đó thực hiện trình bao của bạn; sẽ giữ nó trong bộ nhớ và sẽ là điều gần gũi nhất để "giữ lõi phản ứng nhanh" mà bạn có khả năng nhận được (vì không phải CPU đang bị sử dụng quá mức mà đó là vấn đề).
Cá nhân, tôi đăng ký phương pháp kiểm soát tài nguyên "đừng làm những điều ngu ngốc". Nếu bạn đã root, bạn có thể gây ra tất cả các thiệt hại cho hệ thống và do đó, làm bất cứ điều gì mà bạn không biết kết quả có thể xảy ra là một công việc rủi ro.