Saya memiliki masalah yang membingungkan. Saya memiliki perpustakaan yang menggunakan sg untuk mengeksekusi CDB yang disesuaikan. Ada beberapa sistem yang secara rutin memiliki masalah dengan alokasi memori di sg . Biasanya, driver sg memiliki batas keras sekitar 4MB, tetapi kami melihatnya pada beberapa sistem ini dengan ~ 2,3MB permintaan. Artinya, CDB sedang mempersiapkan untuk mengalokasikan untuk transfer 2.3mb. Seharusnya tidak ada masalah di sini: 2.3 <4.0.
Sekarang, profil mesin. Ini adalah CPU 64 bit tetapi menjalankan CentOS 6.0 32-bit (Saya tidak membangunnya juga tidak ada hubungannya dengan keputusan ini). Versi kernel untuk distro CentOS ini adalah 2.6.32. Mereka memiliki 16gb RAM.
Inilah tampilan penggunaan memori pada sistem (meskipun, karena kesalahan ini terjadi selama pengujian otomatis, saya belum memverifikasi apakah ini mencerminkan keadaan ketika errno ini dikembalikan dari 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
Saya menemukan artikel ini dari Linux Journal yaitu tentang mengalokasikan memori di kernel. Artikel ini bertanggal tetapi tampaknya berkaitan dengan 2.6 (beberapa komentar tentang penulis di kepala). Artikel tersebut menyebutkan bahwa kernel terbatas pada sekitar 1gb memori (meskipun tidak sepenuhnya jelas dari teks jika masing-masing 1gb untuk fisik dan virtual atau total). Saya ingin tahu apakah ini pernyataan yang akurat untuk 2.6.32. Pada akhirnya, saya bertanya-tanya apakah sistem ini mencapai batas ini.
Meskipun ini bukan jawaban untuk masalah saya, saya bertanya-tanya tentang kebenaran klaim 2.6.32. Jadi, berapa batas sebenarnya dari memori untuk kernel? Ini mungkin perlu menjadi pertimbangan untuk pemecahan masalah. Saran lain dipersilahkan. Apa yang membuat ini sangat membingungkan adalah bahwa sistem ini identik dengan banyak lainnya yang tidak menunjukkan masalah yang sama.