Tôi đã có một eeePC 900a: nó có flash 8GB dưới dạng đĩa và chỉ 1GB RAM. Bản phân phối Linux được cài đặt trên nó là ArchLinux.
Khi hệ thống hết bộ nhớ, nó trở nên cực kỳ không phản hồi: phải mất vài giây / phút để làm những việc như chuyển sang TTY1 hoặc thậm chí di chuyển con trỏ chuột. Đôi khi có vẻ như hệ thống chỉ đóng băng: ba chúng tôi trước đây tôi để nó một mình và cho đến nay không có gì thay đổi.
Tôi muốn tránh tạo phân vùng / tệp hoán đổi trên eeePC này vì đĩa đã nhỏ và cũng vì nhiều lần ghi trên không gian hoán đổi sẽ rút ngắn rất nhiều thời gian sử dụng thẻ flash. Hơn nữa, tôi nghĩ rằng một tập tin hoán đổi / phân vùng sẽ chỉ di chuyển vấn đề, thay vì chắc chắn sửa nó.
Không phải kernel phải giết một số ứng dụng ngẫu nhiên khi hết bộ nhớ sao? Tại sao nó thất bại (hoặc mất nhiều tuổi) khi làm điều đó?
Vài tháng / năm trước tôi đã cố gắng tìm hiểu sâu hơn về vấn đề này, nhưng không thể tìm thấy bất cứ thứ gì thực sự có tác dụng ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. Điều này chắc chắn sẽ khắc phục vấn đề của tôi. Nhưng chờ đã, hạt nhân có phải làm điều đó không (và theo cách tốt hơn nhiều so với kịch bản của tôi)? Tại sao nó không làm việc của nó?