Lỗi phân bổ trang - Tôi có hết bộ nhớ không?


24

Gần đây, tôi nhận thấy các mục như thế này trong một trong các kern.logmáy chủ của tôi:

Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20

Tôi muốn biết:

  1. Chính xác thì thông điệp đó có ý nghĩa gì?
  2. Là máy chủ của tôi hết bộ nhớ?

Việc sử dụng trao đổi khá thấp (dưới 10%) và cho đến nay tôi không nhận thấy bất kỳ quá trình nào bị giết vì thiếu bộ nhớ.

Thông tin thêm:

  • Máy chủ là phiên bản Xen (DomU) chạy Debian 6.0
  • Nó có 512 MB RAM và phân vùng trao đổi 512 MB
  • Tải CPU bên trong máy ảo cho thấy trung bình 0,25

Câu trả lời:


14

Lỗi Debian 666021 dường như là một báo cáo về vấn đề tương tự. Gợi ý là:

#change value for this boot
sysctl -w vm.min_free_kbytes=65536

#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf

http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/ có một số thảo luận về việc thay đổi cài đặt này có thể hữu ích, được sao chép tại đây:

Điều này nói với kernel luôn cố gắng và giữ 64 MB RAM miễn phí. Nó hữu ích trong hai trường hợp chính:

  • Các máy không hoán đổi, nơi bạn không muốn lưu lượng truy cập mạng tràn vào kernel và buộc OOM trước khi có thời gian để xóa bất kỳ bộ đệm nào.

  • Các máy x86, vì lý do tương tự: kiến ​​trúc x86 chỉ cho phép DMA chuyển dưới khoảng 900 MB RAM. Vì vậy, bạn có thể kết thúc với tình huống kỳ quái của một lỗi OOM với hàng tấn RAM miễn phí.

Tôi đã áp dụng cài đặt này trên máy 3.2.12-gentoo x86 của mình, nhưng tôi vẫn gặp phải các lỗi này.


Điều tương tự này có thể xảy ra với một số thiết bị nhất định, ví dụ với bộ điều khiển SCT MPT Fusion, bạn nên giữ vm.min_free_kbytes khoảng 100 megabyte. Hoặc ít nhất nó đã được sử dụng, khi cuối cùng tôi phải sử dụng những thứ đó với các bản phân phối Linux 32 bit. Mọi thứ có thể đã được thay đổi kể từ đó.
Janne Pikkarainen

CẢNH BÁO QUAN TRỌNG . echo 104857600 > /proc/sys/vm/min_free_kbytes GHI CHÚ HỆ THỐNG CỦA TÔI ĐẾN KernEL PANIC, có thể sao chép . Một chút văn bản bay lên màn hình trong quá trình tôi không có hy vọng đọc, nhưng những tin nhắn cuối cùng liên quan đến khóa Wi-Fi của tôi, vì vậy sự cố này có thể là đặc trưng cho hệ thống của tôi. Điều đó đang được nói, chọc một cách thận trọng.
i336_

OH, nó tính bằng kilobyte . Tôi không thể nhớ cụ thể nếu tôi đã làm 104857600 hoặc 10485760, nhưng nếu trước đây tôi đã cố gắng dự trữ 100GB, mà máy tính xách tay này chưa cài đặt;) Thỉnh thoảng tôi sẽ thử xử lý vấn đề này trong VM.
i336_

1

Tôi vừa mới khắc phục lỗi này trên Lenovo NAS chạy Debian 5 và kernel 2.6.39.3 64bit.

Các tin nhắn là thông tin mặc dù trông đáng sợ, theo https://www.novell.com/support/kb/doc.php?id=7002804

Tuy nhiên, họ đã lấp đầy phân vùng gốc rất hạn chế của tôi (thiết bị này có phân vùng gốc 50 MByte ?!)

Cách khắc phục cho tôi là đặt vm.min_free_kbytestừ 65536dưới lên 16384.

Sau đó, HĐH vẫn có bộ nhớ trống 107 MB và bộ đệm 2 GB. Điều này không có ý nghĩa, nhưng nó đã dừng tất cả việc đăng nhập.


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.