"치명적인 오류: 충분한 메모리를 할당할 수 없습니다." 그러나 사용되지 않는 스왑 영역이 많이 있습니다.

"치명적인 오류: 충분한 메모리를 할당할 수 없습니다." 그러나 사용되지 않는 스왑 영역이 많이 있습니다.

나는 달리려고 노력하고있다.(구체적으로 "Pairwise Global Alignment" 하위 섹션을 호출합니다.가상 검색) 128GB RAM 워크스테이션, OS=Ubuntu 23.04, Kernel=6.2.0-39generic.

참조로 사용되는 시퀀스의 최대 길이를 줄이면서 분석을 실행하는 데 문제가 없지만 전체 참조 데이터베이스를 사용하고 싶습니다.

전체 데이터 세트로 스크립트를 시작하면 다음 메시지와 함께 분석이 약 30% 실패합니다.

Fatal error: Unable to allocate enough memory.

그러나 이 시스템에는 다음이 포함됩니다.

  • 128GB 메모리

  • 776GB 스왑 공간

스왑 영역은 하나의 파티션 + 2개의 스왑 파일(모두 NVME SSD에 있음)로 구성됩니다.

NAME           TYPE      SIZE   USED PRIO
/swap.img      file        8G 339,4M   -2
/dev/nvme0n1p3 partition 256G     1G   -3
/home/swapfile file      512G     0B   -4

Swappiness는 60으로 설정됩니다.

cat /proc/sys/vm/swappiness
60

그리고 필요할 때 시스템이 올바르게 교체됩니다.

분석이 약 30% 진행되고 RAM이 약 100%, 스왑이 약 300GB가 할당되면 위 오류와 함께 분석이 중지됩니다. 그러나 시스템에는 여전히 400GB 이상의 사용 가능한 스왑 공간이 있어야 합니다.

장애가 발생한 시점에 CommitLimit(사용 가능한 전체 메모리 양과 동일)과 Commied_AS를 확인해 보았는데 마지막은 300GB 정도였습니다(그림 참조)맨 위, 또한).

나는 또한 다음을 설정했습니다.

echo 100 > /proc/sys/vm/overcommit_ratio

또한 다음을 시도했습니다.

systemctl disable --now systemd-oomd
systemctl mask system-oomd

사용 가능한 스왑 크기를 제한할 수 있는 다른 시스템 매개변수/옵션이 있는지 아는 사람이 있습니까?

도움을 주셔서 감사합니다.

관련 정보