Tôi có một vấn đề bối rối. Tôi có một thư viện sử dụng sg để thực thi các CDB tùy chỉnh. Có một vài hệ thống thường xuyên có vấn đề với việc cấp phát bộ nhớ trong sg . Thông thường, trình điều khiển sg có giới hạn cứng khoảng 4mb, nhưng chúng tôi thấy nó trên một vài hệ thống có yêu cầu ~ 2.3mb. Đó là, các CDB đang chuẩn bị phân bổ cho việc chuyển 2,3mb. Không nên có bất kỳ vấn đề nào ở đây: 2.3 <4.0.
Bây giờ, hồ sơ của máy. Đó là CPU 64 bit nhưng chạy CentOS 6.0 32 bit (Tôi không xây dựng chúng cũng như không có gì để làm với quyết định này). Phiên bản kernel cho bản phân phối CentOS này là 2.6.32. Chúng có 16gb RAM.
Đây là cách sử dụng bộ nhớ trên hệ thống (mặc dù, vì lỗi này xảy ra trong quá trình kiểm tra tự động, tôi chưa xác minh nếu điều này phản ánh trạng thái khi lỗi này được trả về từ sg ).
top - 00:54:46 up 5 days, 22:05, 1 user, load average: 0.00, 0.01, 0.21
Tasks: 297 total, 1 running, 296 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 15888480k total, 9460408k used, 6428072k free, 258280k buffers
Swap: 4194296k total, 0k used, 4194296k free, 8497424k cached
Tôi tìm thấy bài viết này từ Tạp chí Linux về phân bổ bộ nhớ trong kernel. Bài báo có niên đại nhưng dường như liên quan đến 2.6 (một số ý kiến về tác giả ở đầu). Bài viết đề cập rằng kernel bị giới hạn trong khoảng 1gb bộ nhớ (mặc dù nó không hoàn toàn rõ ràng khỏi văn bản nếu mỗi 1gb cho vật lý và ảo hoặc tổng số). Tôi tự hỏi nếu đây là một tuyên bố chính xác cho 2.6.32. Cuối cùng, tôi tự hỏi nếu các hệ thống này đang đạt đến giới hạn này.
Mặc dù đây không thực sự là một câu trả lời cho vấn đề của tôi, tôi tự hỏi về tính xác thực của khiếu nại trong 2.6.32. Vậy thì, giới hạn thực tế của bộ nhớ cho kernel là bao nhiêu? Điều này có thể cần phải được xem xét để khắc phục sự cố. Những đề nghị khác dều được hoan nghênh. Điều khiến điều này trở nên khó hiểu là các hệ thống này giống hệt với nhiều hệ thống khác không thể hiện cùng một vấn đề này.