OSError: [Errno 12] Cannot allocate memory 해결방법 crontab 사용
본문 바로가기
VAS/Centos 7 개발환경 구축

OSError: [Errno 12] Cannot allocate memory 해결방법 crontab 사용

by Migos 2022. 6. 16.
반응형

RTSP 스트리밍을 받아 20분 넘게 돌리니 메모리에러가 발생.

조치1 : Swap 메모리를 늘려준다.

    CPU 메모리가 꽉차서 그런듯.

조치2 : crontab 으로 버퍼캐쉬 삭제 스케줄러 적용(매분마다 캐시지움)

 

Centos7 은 아래 튜토리얼 참고.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=slkim0&logNo=222064090996

RedHat 계열은 아래 튜토리얼 참고.

https://forteleaf.tistory.com/entry/LINUX-swap-%EC%9A%A9%EB%9F%89-%EB%8A%98%EB%A6%AC%EA%B8%B0?category=904350 

 

1. 메모리 확인

[root@BT-SRVPRD-APP36 dpw]# dmidecode -t memory

 

2. 아래 보면서 참고(16GB 메모리 추가)

[root@BT-SRVPRD-APP36 dpw]# fallocate -l 16GB /swapfile
[root@BT-SRVPRD-APP36 dpw]# chmod 600 /swapfile
[root@BT-SRVPRD-APP36 dpw]# mkswap /swapfile
    mkswap: /swapfile: warning: wiping old swap signature.
    Setting up swapspace version 1, size = 15624996 KiB
    no label, UUID=fe715987-6aa6-4649-b2da-572323ffebaa
[root@BT-SRVPRD-APP36 dpw]# swapon /swapfile
    swapon: /swapfile: swapon failed: Invalid argument
[root@BT-SRVPRD-APP36 dpw]# dd if=/dev/zero of=/swapfile count=16384 bs=1MiB
    16384+0 records in
    16384+0 records out
    17179869184 bytes (17 GB) copied, 5.02095 s, 3.4 GB/s
[root@BT-SRVPRD-APP36 dpw]# mkswap /swapfile
    Setting up swapspace version 1, size = 16777212 KiB
    no label, UUID=a62c48d3-ff2f-472c-9479-cb5c8e21d26e
[root@BT-SRVPRD-APP36 dpw]# swapon /swapfile

 

 

조치2: 캐시 지우기(매분)

# cron 설치
sudo yum update -y
sudo yum install -y cronie
# cron 시작
sudo systemctl start crond
# cron systemctl 활성화
sudo systemctl enable crond
# cron systemctl 등록 확인
sudo systemctl list-unit-files | grep crond

crontab -e

crontab -e 후 아래 붙여넣은 후 저장

* * * * * sync && echo 3 > /proc/sys/vm/drop_caches

 

출처: https://blog.secuof.net/27 [Secuof Blog:티스토리]

반응형

댓글