일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 경희대
- GAN
- 리눅스
- Semantic Segmentation
- paper review
- docker
- CVPR2023
- pytorch
- linux
- 융합연구
- 파이토치
- Neural Radiance Field
- Deep Learning
- panoptic nerf
- 논문리뷰
- 딥러닝
- CVPR
- Vae
- IROS
- Computer Vision
- NERF
- ICCV
- ICCV 2021
- 논문 리뷰
- NeRF paper
- panoptic segmentation
- Python
- 2022
- 논문
- Paper
- Today
- Total
윤제로의 제로베이스
[Linux] 공유메모리(shared memory) 초기화 본문
딥러닝 프로그램을 돌리다가 내가 가끔 중간에 강제 종료시킨 것들이 누적되었는지 shared memory에러가 발생했다.
RuntimeError: DataLoader worker is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.
이런 에러가 발생해서 왜지 하고 찾아보니 shared memory를 넘치면서 발생하는 에러라고 나왔다.
실제로 df -h로 봤을 때 이미 사용중인 shared memory가 56%라고 써져있었다.
(아무 프로그램도 돌리고 있지 않았는데도)
그래서 shared memory를 지우는 방법을 찾아보기 시작.
공유 메모리를 확인하기 위해서는 간단한 명령어 하나면 된다.
ipcs -mp # 묶여있는 프로세스의 PID를 알 수 있음
ipcs -m # shmid를 확인 가능
ipcrm -m ${shmid} # shmid로 삭제 가능
kill -15 ${PID}
ipcs를 사용하면 지금 내 shared memory에 누적되어있는 메모리들을 볼 수 있다.
이중에서 dest라고 뜨는 것들은 destoryed된 값이다.(dest 되었다는 건 해당 shm에 여러 프로세스들이 접근중이기 때문에 nattach가 0이 될때까지 기다렸다가 종료시키겠다는 의미이긴 하나...)
dest는 ipcrm -m으로 지워지지 않기 때문에 ipcs -mp로 확인한 PID로 kill -15 ${PID}를 해주어야 한다.
참고
공유메모리에서 dest ... | KLDP
공유메모리를 사용한 후에 삭제를 하면 아래와 같이 status에 dest가 붙고 프로그램을 종료할 때 까지 그대로 있습니다. dest가 붙는 이유가 무엇이며 왜 없어지지 않고 있는지, 시스템에 미치는 영
kldp.org
https://m.blog.naver.com/sung_mk1919/221978324159
[Linux] 공유 메모리(Shared memory) 초기화
*[Linux] 공유 메모리(Shared memory) 초기화 Shared memory는 컴퓨터 환경에서 여러 프로그램이 ...
blog.naver.com