Tôi đang sử dụng Debian sid, ổ cứng được định dạng bằng ext4, chạy trên linux 3.1
Tôi nhớ trên các phiên bản linux trước đây (có thể trước 3.0), nếu tôi hết bộ nhớ và trao đổi không được bật, các chương trình thường sẽ bị sập. Điều này là hoàn hảo cho môi trường của tôi: duyệt web đơn giản không có hoạt động quan trọng. Đó là, nếu tôi vô tình chạy trên một trang web xấu sử dụng quá nhiều bộ nhớ, nó chỉ bị sập mà không khiến thiết bị đầu cuối của tôi không sử dụng được.
Nhưng trong thiết lập hiện tại của tôi, máy tính bị treo với thông lượng I / O bạo lực ở chế độ nền. iotop tiết lộ kswapd0 là thủ phạm, có nghĩa là do hoán đổi. Sau khi sử dụng swapon -sđể xác định bất kỳ giao dịch hoán đổi nào được kích hoạt, tôi đã sử dụng swapoff -ađể vô hiệu hóa tất cả các giao dịch hoán đổi và swapon -smột lần nữa để xác nhận rằng tất cả các giao dịch hoán đổi đã bị vô hiệu hóa.
Sau đó, tôi đã cố gắng tối đa hóa việc sử dụng bộ nhớ của mình một lần nữa. Than ôi, hành vi tôi mong đợi đã không xảy ra. Thay vào đó, kswapd0 cố gắng lặp đi lặp lại để trao đổi RAM và thất bại vì không có không gian trao đổi. Bởi vì nó không bao giờ bỏ cuộc, máy tính của tôi bị khóa trong trạng thái đóng băng nặng I / O vĩnh viễn, không tốt cho sức khỏe của đĩa.
Tôi đang làm điều gì sai trong việc cố gắng swapoff -a? Tại sao hành vi khác với hành vi trước đây (có thể là trước 3.0 lần)?
fstabdòng về trao đổi. Hãy thử nếu hành vi là như nhau.
swapoff -anên vô hiệu hóa trao đổi vĩnh viễn, có nghĩa là nó sẽ bị vô hiệu hóa sau lần khởi động lại tiếp theo. Tôi đã xác nhận điều này. Tuy nhiên, "cơn bão" I / O vẫn xảy ra trong phiên sau lần khởi động lại tiếp theo. Đối với hồ sơ, "cơn bão" I / O đã không xảy ra tại thời điểm tôi đã làm swapoff -abởi vì hoán đổi là 0 tại thời điểm đó.
swapoff -alà không vĩnh viễn.
swapoff -achính nó , nếu có công cụ trong trao đổi, sẽ tạo ra rất nhiều I / O (và có thể dẫn đến các quá trình bị giết nếu không có đủ RAM thực sự). Bạn có chắc chắn đó không phảiswapoff -alà nguyên nhân gây ra "cơn bão" I / O?