Ho un problema imbarazzante. Ho una libreria che utilizza sg per l'esecuzione di CDB personalizzati. Esistono un paio di sistemi che hanno regolarmente problemi con l'allocazione della memoria in sg . Di solito, il driver sg ha un limite massimo di circa 4 MB, ma lo vediamo su questi pochi sistemi con richieste di ~ 2.3 MB. Cioè, i CDB si stanno preparando a stanziare per un trasferimento di 2.3mb. Non ci dovrebbero essere problemi qui: 2.3 <4.0.
Ora, il profilo della macchina. È una CPU a 64 bit ma esegue CentOS 6.0 a 32 bit (non li ho costruiti né ho nulla a che fare con questa decisione). La versione del kernel per questa distribuzione CentOS è 2.6.32. Hanno 16 GB di RAM.
Ecco come appare l'utilizzo della memoria sul sistema (sebbene, poiché questo errore si verifica durante il test automatizzato, non ho ancora verificato se ciò riflette lo stato quando questo errno viene restituito da 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
Ho trovato questo articolo del Linux Journal che tratta dell'allocazione della memoria nel kernel. L'articolo è datato ma sembra riguardare 2.6 (alcuni commenti sull'autore in testa). L'articolo menziona che il kernel è limitato a circa 1 GB di memoria (anche se non è del tutto chiaro dal testo se quel 1 GB ciascuno per fisico e virtuale o totale). Mi chiedo se questa è un'affermazione accurata per 2.6.32. Alla fine, mi chiedo se questi sistemi stanno raggiungendo questo limite.
Anche se questa non è davvero una risposta al mio problema, mi chiedo della veridicità della richiesta per 2.6.32. Quindi, qual è il limite effettivo di memoria per il kernel? Potrebbe essere necessario prendere in considerazione la risoluzione dei problemi. Qualsiasi altro suggerimento è il benvenuto. Ciò che rende questo così sconcertante è che questi sistemi sono identici a molti altri che non mostrano questo stesso problema.