Tengo un problema desconcertante. Tengo una biblioteca que usa sg para ejecutar CDB personalizados. Hay un par de sistemas que habitualmente tienen problemas con la asignación de memoria en sg . Por lo general, el controlador sg tiene un límite estricto de alrededor de 4 mb, pero lo vemos en estos pocos sistemas con ~ 2.3 mb de solicitudes. Es decir, los CDB se están preparando para asignar una transferencia de 2.3mb. No debería haber ningún problema aquí: 2.3 <4.0.
Ahora, el perfil de la máquina. Es una CPU de 64 bits pero ejecuta CentOS 6.0 de 32 bits (no los construí ni tengo nada que ver con esta decisión). La versión del kernel para esta distribución CentOS es 2.6.32. Tienen 16 gb de RAM.
Así es como se ve el uso de la memoria en el sistema (sin embargo, debido a que este error ocurre durante las pruebas automatizadas, aún no he verificado si esto refleja el estado en el que se devuelve este error de 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
Encontré este artículo de Linux Journal que trata sobre la asignación de memoria en el núcleo. El artículo está fechado pero parece pertenecer a 2.6 (algunos comentarios sobre el autor a la cabeza). El artículo menciona que el núcleo está limitado a aproximadamente 1 gb de memoria (aunque no está completamente claro en el texto si ese 1 gb es físico, virtual o total). Me pregunto si esta es una declaración precisa para 2.6.32. En última instancia, me pregunto si estos sistemas están alcanzando este límite.
Aunque esto no es realmente una respuesta a mi problema, me pregunto sobre la veracidad del reclamo de 2.6.32. Entonces, ¿cuál es el límite real de memoria para el núcleo? Es posible que esto deba considerarse para la resolución de problemas. Cualquier otra sugerencia es bienvenida. Lo que hace que esto sea tan desconcertante es que estos sistemas son idénticos a muchos otros que no muestran este mismo problema.