kswapd0
오늘 갑자기 서버가 다운이 되었다. 프로세스를 확인 해보니 CPU 과다점유로 서버가 다운이 된 것.
원인은 kswapd0 cpu 과다점유 때문이다. 이놈이 99% 정도 점유해서 서버가 뻑난 것이다.
근본적인 원인은 잘 모르겠다. 일단 설정은
https://kb.lc/01.how_to/kswapd0/#reference
이 페이지를 보고 수정을 했지만. 이런다고 해결이 될 지는 지켜봐야 된다. 골 때린다.
cat /proc/sys/vm/swappiness
확인해서 0으로 설정 (설정하는 방법), (설정하는 방법2)
echo 0 > /proc/sys/vm/swappiness
/etc/sysctl.conf 기본값에는 vm.swappiness 설정이 없으므로 새로 추가해주어야 한다.[2]
vi /etc/sysctl.conf
vm.swappiness = 0
cat /sys/kernel/mm/transparent_hugepage/enabled
확인해서 always 설정 (설정하는 방법)
echo always > /sys/kernel/mm/transparent_hugepage/enabled
/etc/default/grub 설정 파일 수정
GRUB_CMDLINE_LINUX 값 끝부분에 transparent_hugepage=always 추가
# grub2-mkconfig -o /boot/grub2/grub.cfg
메모리 되찾기 (설정하는 방법)
echo 10000 > /proc/sys/vm/vfs_cache_pressure
또는
$ sysctl vm.vfs_cache_pressure=10000
영구적으로 설정하기 위해서는 /etc/sysctl.conf 파일에 아래와 같이 추가
vm.vfs_cache_pressure = 10000
스와핑 방지
echo vm.swappiness=0 | tee -a /etc/sysctl.conf
캐시 지우기
echo 1 > /proc/sys/vm/drop_caches
이렇게 설정을 다~~~~ 했는데도 해결이 안된다.
그냥 프로세스 죽이기로 했다. 프로세스를 줄이면 일시적으로 해결이 되었다. 프로세스가 다시 뜨기전까지는...
- 현재 사용중인 프로세스 찾기
ps aux
- 프로세스 찾기
ps aux | grep kswapd0
| 리눅스 현재 사용중인 pid를 중지하기
kill -9 PID
아무튼 최종 설정값은 다음과 같이 결정하고, /etc/sysctl.conf 파일에 추가하였다.
vm.swappiness=60
vm.vfs_cache_pressure=30
vm.dirty_background_ratio=10
vm.dirty_ratio=30
여러가지 방법으로 시도해 보았지만, kswapd0프로세스가 cpu 사용률을 100%유지하고 있는 상황을 완전히 피할 수는 없을 것으로 생각 되어진다. kswapd0 프로세스의 버그인 듯 하다. 그렇지만 위의 4개 값을 지정하고 사용하면 발생확률이 지극히 낮고, 100%를 유지하는 시간이 길지 않다(길어봐야 수초). 이 설정으로 계속 쓰기로 결정...
LIST
'일기 > Develop Note' 카테고리의 다른 글
STT-Translate Success (0) | 2022.08.14 |
---|---|
Restart STT + Translate (0) | 2022.08.11 |
2022-03-23 | 개발노트 Moment Share | 03 (0) | 2022.03.25 |
2022-03-23 | 개발노트 Moment Share | 02 (0) | 2022.03.23 |
2022-03-22 | 개발노트 Moment Share | 01 (0) | 2022.03.22 |