난처한 문제가 있습니다. 사용자 정의 CDB를 실행하기 위해 sg 를 사용하는 라이브러리가 있습니다. sg의 메모리 할당에 문제가있는 시스템이 몇 가지 있습니다 . 일반적으로 sg 드라이버는 약 4mb의 하드 한계를 갖지만 ~ 2.3mb 요청이있는 몇 가지 시스템에서 볼 수 있습니다. 즉, CDB는 2.3mb 전송을 할당 할 준비를하고 있습니다. 여기에는 아무런 문제가 없어야합니다 : 2.3 <4.0.
이제 기계의 프로파일입니다. 64 비트 CPU이지만 CentOS 6.0 32 비트를 실행합니다 (빌드하지 않았 으며이 결정과 관련이 없습니다). 이 CentOS 배포판의 커널 버전은 2.6.32입니다. 그들은 16 기가 바이트의 RAM이 있습니다.
다음은 시스템에서 메모리 사용량이 어떻게 보이는지입니다 (자동 테스트 중에이 오류가 발생하기 때문에이 오류가 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
커널에 메모리를 할당하는 것에 관한 Linux Journal 에서이 기사 를 찾았습니다 . 이 기사는 날짜가 있지만 2.6과 관련이있는 것 같습니다 (머리에 저자에 대한 의견). 이 기사는 커널이 약 1GB의 메모리로 제한되어 있다고 언급합니다 (물리적 또는 가상 또는 전체에 대해 1GB가 텍스트라면 완전히 명확하지는 않지만). 이것이 2.6.32에 대한 정확한 진술인지 궁금합니다. 궁극적으로 이러한 시스템이이 한계에 도달하는지 궁금합니다.
이것이 실제로 내 문제에 대한 답변은 아니지만 2.6.32에 대한 주장의 진실성에 대해 궁금합니다. 그렇다면 커널의 실제 메모리 제한은 얼마입니까? 문제 해결을 위해 고려해야 할 수도 있습니다. 다른 제안은 환영합니다. 이것이 당황스럽게 만드는 이유는 이러한 시스템이 동일한 문제를 나타내지 않는 다른 시스템과 동일하다는 것입니다.